Upgrade V8 to 152.2.0 and backport Array.sort safety guards (#54519)

## Why

Optimized `Array.prototype.sort` can write objects into incompatible array element storage when receiver element kinds differ and the comparator mutates the array.

## What changed

- Upgrade `v8` to `152.2.0`, the Bazel V8 source to `15.2.124.1`, and ICU data and initialization to version 78.
- Backport element-kind agreement checks for sort inlining in TurboFan and Maglev. Apply the patch to Bazel builds and Windows MSVC source builds, and include it in source-build cache keys and canary triggers.
- Refresh pinned sandbox archives and bindings, extend Bazel prebuilt coverage to musl Linux, and use matching sandbox bindings on Windows MSVC.
- Update Bazel integration patches and runtime dependencies for the new V8 release, and download the pinned Windows build tools in source-build workflows.

## Testing

Include the upstream sort regression test covering mixed element kinds, comparator mutation, and continued optimization for matching kinds. Add a test requiring canary and Windows source builds when the backport changes, and update artifact-fetch tests for the new version.

GitOrigin-RevId: 138b7821cddd25466c10aced1dd22be24837caf0
This commit is contained in:
Sean Huang
2026-10-16 06:06:54 +00:00
committed by copyberry
parent a45b8ccb01
commit 6ae8b8aa7c
22 changed files with 669 additions and 411 deletions
+1
View File
@@ -1,3 +1,4 @@
codex-rs/app-server-protocol/schema/** linguist-generated
codex-rs/hooks/schema/generated/** linguist-generated
third_party/voice/sources.json text eol=lf
patches/v8_array_sort_elements_kind.patch text eol=lf
@@ -59,6 +59,12 @@ version = "149.2.0"
windows_source_required(changed_files, "149.2.0", "149.2.0")
)
def test_security_backport_changes_require_canary_and_source_build(self) -> None:
changed_files = {"patches/v8_array_sort_elements_kind.patch"}
self.assertTrue(canary_required(changed_files, "152.2.0", "152.2.0"))
self.assertTrue(windows_source_required(changed_files, "152.2.0", "152.2.0"))
def test_manual_dispatch_requires_source_build(self) -> None:
self.assertTrue(
windows_source_required(
+1
View File
@@ -49,6 +49,7 @@ WINDOWS_SOURCE_BUILD_PATHS = {
".github/scripts/v8_canary_changes.py",
".github/workflows/rusty-v8-release.yml",
".github/workflows/v8-canary.yml",
"patches/v8_array_sort_elements_kind.patch",
}
+16 -1
View File
@@ -318,6 +318,16 @@ jobs:
submodules: recursive
persist-credentials: false
- name: Download upstream Windows build tools
shell: bash
working-directory: upstream-rusty-v8
run: |
set -euo pipefail
# Upstream skips this submodule and downloads the pinned archive in CI.
mkdir -p tools/win
curl -fL https://chromium.googlesource.com/chromium/src/tools/win/+archive/faefd1b6fa9eeb033ad6fe60368ccb9bf908cbd0.tar.gz |
tar -xz -C tools/win
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
@@ -350,10 +360,15 @@ jobs:
path: |
upstream-rusty-v8/target/sccache
upstream-rusty-v8/target/${{ matrix.target }}/release/gn_out
key: rusty-v8-source-${{ matrix.target }}-sandbox-${{ hashFiles('upstream-rusty-v8/Cargo.lock', 'upstream-rusty-v8/build.rs', 'upstream-rusty-v8/git_submodule_status.txt') }}
key: rusty-v8-source-${{ matrix.target }}-sandbox-${{ hashFiles('upstream-rusty-v8/Cargo.lock', 'upstream-rusty-v8/build.rs', 'upstream-rusty-v8/git_submodule_status.txt', 'patches/v8_array_sort_elements_kind.patch') }}
restore-keys: |
rusty-v8-source-${{ matrix.target }}-sandbox-
- name: Apply V8 Array.sort backport
shell: bash
working-directory: upstream-rusty-v8/v8
run: git apply -p3 "${GITHUB_WORKSPACE}/patches/v8_array_sort_elements_kind.patch"
- name: Install sccache
uses: taiki-e/install-action@44c6d64aa62cd779e873306675c7a58e86d6d532 # v2.62.49
with:
+16 -1
View File
@@ -336,6 +336,16 @@ jobs:
submodules: recursive
persist-credentials: false
- name: Download upstream Windows build tools
shell: bash
working-directory: upstream-rusty-v8
run: |
set -euo pipefail
# Upstream skips this submodule and downloads the pinned archive in CI.
mkdir -p tools/win
curl -fL https://chromium.googlesource.com/chromium/src/tools/win/+archive/faefd1b6fa9eeb033ad6fe60368ccb9bf908cbd0.tar.gz |
tar -xz -C tools/win
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
@@ -368,10 +378,15 @@ jobs:
path: |
${{ steps.setup_ci.outputs.cargo-target-dir }}/sccache
${{ steps.setup_ci.outputs.cargo-target-dir }}/${{ matrix.target }}/release/gn_out
key: rusty-v8-source-${{ matrix.target }}-${{ matrix.runner }}-sandbox-${{ hashFiles('upstream-rusty-v8/Cargo.lock', 'upstream-rusty-v8/build.rs', 'upstream-rusty-v8/git_submodule_status.txt') }}
key: rusty-v8-source-${{ matrix.target }}-${{ matrix.runner }}-sandbox-${{ hashFiles('upstream-rusty-v8/Cargo.lock', 'upstream-rusty-v8/build.rs', 'upstream-rusty-v8/git_submodule_status.txt', 'patches/v8_array_sort_elements_kind.patch') }}
restore-keys: |
rusty-v8-source-${{ matrix.target }}-${{ matrix.runner }}-sandbox-
- name: Apply V8 Array.sort backport
shell: bash
working-directory: upstream-rusty-v8/v8
run: git apply -p3 "${GITHUB_WORKSPACE}/patches/v8_array_sort_elements_kind.patch"
- name: Install sccache
uses: taiki-e/install-action@44c6d64aa62cd779e873306675c7a58e86d6d532 # v2.62.49
with:
+108 -54
View File
@@ -595,8 +595,7 @@ crate.annotation(
"RUSTY_V8_SRC_BINDING_PATH": "$(execpath @v8_targets//:rusty_v8_binding_for_target)",
},
crate = "v8",
# Keep the Rust feature aligned with the source-built Bazel artifacts.
# Windows MSVC still consumes upstream non-sandboxed prebuilts.
# Keep the Rust feature aligned with the sandbox archive/binding pairs.
crate_features_select = {
"aarch64-apple-darwin": ["v8_enable_sandbox"],
"aarch64-pc-windows-gnullvm": ["v8_enable_sandbox"],
@@ -816,27 +815,28 @@ inject_repo(crate, "alsa_lib")
]
]
bazel_dep(name = "v8", version = "15.0.245.2")
bazel_dep(name = "v8", version = "15.2.124.1")
archive_override(
module_name = "v8",
integrity = "sha256-Fk89PgqLTAKjhtOojRsRM9N+XCC+Ajn+zc3eQUpDQNU=",
integrity = "sha256-aNN5G427qQbP/5o+NXONgXR8ZvS6mjf6mfAI6jtxyzI=",
patch_strip = 3,
patches = [
"//patches:v8_module_deps.patch",
"//patches:v8_bazel_rules.patch",
"//patches:v8_source_portability.patch",
"//patches:v8_array_sort_elements_kind.patch",
],
strip_prefix = "v8-15.0.245.2",
urls = ["https://github.com/v8/v8/archive/refs/tags/15.0.245.2.tar.gz"],
strip_prefix = "v8-15.2.124.1",
urls = ["https://github.com/v8/v8/archive/refs/tags/15.2.124.1.tar.gz"],
)
http_archive(
name = "v8_crate_150_4_0",
name = "v8_crate_152_2_0",
build_file = "//third_party/v8:v8_crate.BUILD.bazel",
sha256 = "42a978ff11f15b24e5c05a7123cf2b68f41e763546699781a924ef4e2cf43a49",
strip_prefix = "v8-150.4.0",
sha256 = "a10fe1a92da5c32c7c7f838ce36c0ccfcfd5edf0865b58bdde820aa64cea9888",
strip_prefix = "v8-152.2.0",
type = "tar.gz",
urls = ["https://static.crates.io/crates/v8/v8-150.4.0.crate"],
urls = ["https://static.crates.io/crates/v8/v8-152.2.0.crate"],
)
git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
@@ -844,7 +844,7 @@ git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "g
git_repository(
name = "rusty_v8_libcxx",
build_file = "//third_party/v8:libcxx.BUILD.bazel",
commit = "5abc7f839700f0f17338434e1c1c6a8c87c00c11",
commit = "b16984ce99c702355a5b2b4c52574e82cec41fb9",
remote = "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git",
)
@@ -858,97 +858,151 @@ git_repository(
git_repository(
name = "rusty_v8_llvm_libc",
build_file = "//third_party/v8:llvm_libc.BUILD.bazel",
commit = "9309c117ebae84dd2f9df1ef99de4782162527d5",
commit = "75ae50cd48c8a9d70f552ccff040029968778da9",
remote = "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git",
)
http_file(
name = "rusty_v8_150_4_0_aarch64_pc_windows_msvc_archive",
downloaded_file_path = "rusty_v8_release_aarch64-pc-windows-msvc.lib.gz",
sha256 = "54722842af36b74248c403ff531254efac6ff65d281198bab0c6350fc1188ad4",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/rusty_v8_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.lib.gz",
],
)
http_file(
name = "rusty_v8_150_4_0_x86_64_pc_windows_msvc_archive",
downloaded_file_path = "rusty_v8_release_x86_64-pc-windows-msvc.lib.gz",
sha256 = "732ec5da4243aa166799780c8519a5eea6f32f6e47657a323342794dc3c239d6",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/rusty_v8_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.lib.gz",
],
)
http_file(
name = "rusty_v8_150_4_0_aarch64_apple_darwin_archive",
name = "rusty_v8_152_2_0_aarch64_apple_darwin_archive",
downloaded_file_path = "librusty_v8_ptrcomp_sandbox_release_aarch64-apple-darwin.a.gz",
sha256 = "00adbb48798848c77550441c68673a5e8529b8e1b73eabcdee232cb39b40f4a1",
sha256 = "feab9ae0384bebaa99c1d000654462c9d42123d587185c7876aaeef7d76ff749",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/librusty_v8_ptrcomp_sandbox_release_aarch64-apple-darwin.a.gz",
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/librusty_v8_ptrcomp_sandbox_release_aarch64-apple-darwin.a.gz",
],
)
http_file(
name = "rusty_v8_150_4_0_aarch64_apple_darwin_binding",
name = "rusty_v8_152_2_0_aarch64_apple_darwin_binding",
downloaded_file_path = "src_binding_ptrcomp_sandbox_release_aarch64-apple-darwin.rs",
sha256 = "ca5adf0cf89c9a70ad460ae73648b2fe89b74aa113b3cb7f757b6a02b758394f",
sha256 = "b9d5652ebca515eb2bf4c2ee4a6551b2567117b5aa720f430d2032616dd7e3b5",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/src_binding_ptrcomp_sandbox_release_aarch64-apple-darwin.rs",
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/src_binding_ptrcomp_sandbox_release_aarch64-apple-darwin.rs",
],
)
http_file(
name = "rusty_v8_150_4_0_aarch64_unknown_linux_gnu_archive",
name = "rusty_v8_152_2_0_aarch64_pc_windows_msvc_archive",
downloaded_file_path = "rusty_v8_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.lib.gz",
sha256 = "daf327876f7753a94b3b05d6d64776258def3ae67503ac75db9c35c6deaa28a5",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/rusty_v8_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.lib.gz",
],
)
http_file(
name = "rusty_v8_152_2_0_aarch64_pc_windows_msvc_binding",
downloaded_file_path = "src_binding_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.rs",
sha256 = "572ed16ff09bb7944f4b35c659ff62dcd3faf43a0351e3f94f011e01b2f92a62",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/src_binding_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.rs",
],
)
http_file(
name = "rusty_v8_152_2_0_aarch64_unknown_linux_gnu_archive",
downloaded_file_path = "librusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.a.gz",
sha256 = "d1517eed405468537029b005d5fe997ec74d5c8d351f916b3a6df20b7d2811ba",
sha256 = "1054464a623006cdf5e25ae20877002bf3edb9a2c2f3e64f44a8714742b15e87",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/librusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.a.gz",
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/librusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.a.gz",
],
)
http_file(
name = "rusty_v8_150_4_0_aarch64_unknown_linux_gnu_binding",
name = "rusty_v8_152_2_0_aarch64_unknown_linux_gnu_binding",
downloaded_file_path = "src_binding_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.rs",
sha256 = "7727826ae479bdb645e807239fb12d1f8e2e23de7a6cf16f5ee592690d1d8506",
sha256 = "3e4d5fecdbe0f98a6017e69d7ca82519a77fb032c5eb5e4cdbecdd3e2ec519d5",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/src_binding_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.rs",
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/src_binding_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.rs",
],
)
http_file(
name = "rusty_v8_150_4_0_x86_64_apple_darwin_archive",
name = "rusty_v8_152_2_0_aarch64_unknown_linux_musl_archive",
downloaded_file_path = "librusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-musl.a.gz",
sha256 = "1a60f36a3dd8778802e6980668c4d65a3c7305d85a5d2debf466d9aa0daadd75",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/librusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-musl.a.gz",
],
)
http_file(
name = "rusty_v8_152_2_0_aarch64_unknown_linux_musl_binding",
downloaded_file_path = "src_binding_ptrcomp_sandbox_release_aarch64-unknown-linux-musl.rs",
sha256 = "3e4d5fecdbe0f98a6017e69d7ca82519a77fb032c5eb5e4cdbecdd3e2ec519d5",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/src_binding_ptrcomp_sandbox_release_aarch64-unknown-linux-musl.rs",
],
)
http_file(
name = "rusty_v8_152_2_0_x86_64_apple_darwin_archive",
downloaded_file_path = "librusty_v8_ptrcomp_sandbox_release_x86_64-apple-darwin.a.gz",
sha256 = "e0d9bb64e8b3a034c2930c83972f3f35760211148342fa0407b38250ef330856",
sha256 = "bfe19d9b633b61d99780ece89690427fef4b985c6b4196536eaf94571166fc24",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/librusty_v8_ptrcomp_sandbox_release_x86_64-apple-darwin.a.gz",
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/librusty_v8_ptrcomp_sandbox_release_x86_64-apple-darwin.a.gz",
],
)
http_file(
name = "rusty_v8_150_4_0_x86_64_apple_darwin_binding",
name = "rusty_v8_152_2_0_x86_64_apple_darwin_binding",
downloaded_file_path = "src_binding_ptrcomp_sandbox_release_x86_64-apple-darwin.rs",
sha256 = "ca5adf0cf89c9a70ad460ae73648b2fe89b74aa113b3cb7f757b6a02b758394f",
sha256 = "b9d5652ebca515eb2bf4c2ee4a6551b2567117b5aa720f430d2032616dd7e3b5",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/src_binding_ptrcomp_sandbox_release_x86_64-apple-darwin.rs",
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/src_binding_ptrcomp_sandbox_release_x86_64-apple-darwin.rs",
],
)
http_file(
name = "rusty_v8_150_4_0_x86_64_unknown_linux_gnu_archive",
name = "rusty_v8_152_2_0_x86_64_pc_windows_msvc_archive",
downloaded_file_path = "rusty_v8_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.lib.gz",
sha256 = "cd829415695b30ad61b306b23a381e11276f14bb0b46815ac5ed8b96711d002d",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/rusty_v8_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.lib.gz",
],
)
http_file(
name = "rusty_v8_152_2_0_x86_64_pc_windows_msvc_binding",
downloaded_file_path = "src_binding_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.rs",
sha256 = "572ed16ff09bb7944f4b35c659ff62dcd3faf43a0351e3f94f011e01b2f92a62",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/src_binding_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.rs",
],
)
http_file(
name = "rusty_v8_152_2_0_x86_64_unknown_linux_gnu_archive",
downloaded_file_path = "librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.a.gz",
sha256 = "a35c75d1f26e6a983885a45b33490a4ebe54f05050568b32b89cfb421b30b583",
sha256 = "b3b490f2aa809eda7f6ac727f851fb00ce8355be72827577cfaac28c7137dbcd",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.a.gz",
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.a.gz",
],
)
http_file(
name = "rusty_v8_150_4_0_x86_64_unknown_linux_gnu_binding",
name = "rusty_v8_152_2_0_x86_64_unknown_linux_gnu_binding",
downloaded_file_path = "src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.rs",
sha256 = "7727826ae479bdb645e807239fb12d1f8e2e23de7a6cf16f5ee592690d1d8506",
sha256 = "3e4d5fecdbe0f98a6017e69d7ca82519a77fb032c5eb5e4cdbecdd3e2ec519d5",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v150.4.0/src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.rs",
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.rs",
],
)
http_file(
name = "rusty_v8_152_2_0_x86_64_unknown_linux_musl_archive",
downloaded_file_path = "librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-musl.a.gz",
sha256 = "2f2679773a12576dc6b89b0f7d70e8190e5aea8a57f8f6364efaffdd1497d0e7",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-musl.a.gz",
],
)
http_file(
name = "rusty_v8_152_2_0_x86_64_unknown_linux_musl_binding",
downloaded_file_path = "src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-musl.rs",
sha256 = "3e4d5fecdbe0f98a6017e69d7ca82519a77fb032c5eb5e4cdbecdd3e2ec519d5",
urls = [
"https://github.com/openai/codex/releases/download/rusty-v8-v152.2.0/src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-musl.rs",
],
)
+2 -6
View File
@@ -12,7 +12,6 @@
"https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16",
"https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1",
"https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215",
"https://bcr.bazel.build/modules/abseil-cpp/20250814.0/MODULE.bazel": "c43c16ca2c432566cdb78913964497259903ebe8fb7d9b57b38e9f1425b427b8",
"https://bcr.bazel.build/modules/abseil-cpp/20250814.1/MODULE.bazel": "51f2312901470cdab0dbdf3b88c40cd21c62a7ed58a3de45b365ddc5b11bcab2",
"https://bcr.bazel.build/modules/abseil-cpp/20250814.1/source.json": "cea3901d7e299da7320700abbaafe57a65d039f10d0d7ea601c4a66938ea4b0c",
"https://bcr.bazel.build/modules/alsa_lib/1.2.9.bcr.4/MODULE.bazel": "66842efc2b50b7c12274a5218d468119a5d6f9dc46a5164d9496fb517f64aba6",
@@ -121,7 +120,6 @@
"https://bcr.bazel.build/modules/protobuf/23.1/MODULE.bazel": "88b393b3eb4101d18129e5db51847cd40a5517a53e81216144a8c32dfeeca52a",
"https://bcr.bazel.build/modules/protobuf/24.4/MODULE.bazel": "7bc7ce5f2abf36b3b7b7c8218d3acdebb9426aeb35c2257c96445756f970eb12",
"https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
"https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d",
"https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
"https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92",
"https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95",
@@ -210,7 +208,6 @@
"https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
"https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483",
"https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
"https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2",
"https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96",
"https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e",
"https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
@@ -221,7 +218,6 @@
"https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937",
"https://bcr.bazel.build/modules/rules_python/0.34.0/MODULE.bazel": "1d623d026e075b78c9fde483a889cda7996f5da4f36dffb24c246ab30f06513a",
"https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
"https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43",
"https://bcr.bazel.build/modules/rules_python/1.2.0/MODULE.bazel": "5aeeb48b2a6c19d668b48adf2b8a2b209a6310c230db0ce77450f148a89846e4",
"https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13",
"https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6",
@@ -1234,7 +1230,7 @@
"defmt_0.3.100": "{\"dependencies\":[{\"name\":\"defmt10\",\"package\":\"defmt\",\"req\":\"^1\"}],\"features\":{\"alloc\":[\"defmt10/alloc\"],\"avoid-default-panic\":[\"defmt10/avoid-default-panic\"],\"encoding-raw\":[\"defmt10/encoding-raw\"],\"encoding-rzcobs\":[\"defmt10/encoding-rzcobs\"],\"ip_in_core\":[\"defmt10/ip_in_core\"],\"unstable-test\":[\"defmt10/unstable-test\"]}}",
"defmt_1.1.1": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^1\"},{\"name\":\"defmt-macros\",\"req\":\"=1.1.1\"},{\"kind\":\"dev\",\"name\":\"rustc_version\",\"req\":\"^0.4\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1\"}],\"features\":{\"alloc\":[],\"avoid-default-panic\":[],\"encoding-raw\":[],\"encoding-rzcobs\":[],\"ip_in_core\":[],\"unstable-test\":[\"defmt-macros/unstable-test\"]}}",
"deltae_0.3.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"clap\",\"req\":\"^4.2.1\"}],\"features\":{}}",
"deno_core_icudata_0.77.0": "{\"dependencies\":[],\"features\":{}}",
"deno_core_icudata_0.78.0": "{\"dependencies\":[],\"features\":{}}",
"der-parser_10.0.0": "{\"dependencies\":[{\"name\":\"asn1-rs\",\"req\":\"^0.7\"},{\"name\":\"bitvec\",\"optional\":true,\"req\":\"^1.0\"},{\"name\":\"cookie-factory\",\"optional\":true,\"req\":\"^0.3.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"hex-literal\",\"req\":\"^0.4\"},{\"name\":\"nom\",\"req\":\"^7.0\"},{\"name\":\"num-bigint\",\"optional\":true,\"req\":\"^0.4\"},{\"name\":\"num-traits\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.0\"},{\"name\":\"rusticata-macros\",\"req\":\"^4.0\"},{\"kind\":\"dev\",\"name\":\"test-case\",\"req\":\"^3.0\"}],\"features\":{\"as_bitvec\":[\"bitvec\"],\"bigint\":[\"num-bigint\"],\"default\":[\"std\"],\"serialize\":[\"std\",\"cookie-factory\"],\"std\":[],\"unstable\":[]}}",
"der-parser_9.0.0": "{\"dependencies\":[{\"name\":\"asn1-rs\",\"req\":\"^0.6\"},{\"name\":\"cookie-factory\",\"optional\":true,\"req\":\"^0.3.0\"},{\"default_features\":false,\"name\":\"displaydoc\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"hex-literal\",\"req\":\"^0.4\"},{\"name\":\"nom\",\"req\":\"^7.0\"},{\"name\":\"num-bigint\",\"optional\":true,\"req\":\"^0.4\"},{\"name\":\"num-traits\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"pretty_assertions\",\"req\":\"^1.0\"},{\"name\":\"rusticata-macros\",\"req\":\"^4.0\"},{\"kind\":\"dev\",\"name\":\"test-case\",\"req\":\"^3.0\"}],\"features\":{\"bigint\":[\"num-bigint\"],\"default\":[\"std\"],\"serialize\":[\"std\",\"cookie-factory\"],\"std\":[],\"unstable\":[]}}",
"der_0.7.10": "{\"dependencies\":[{\"features\":[\"derive\"],\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.3\"},{\"default_features\":false,\"name\":\"bytes\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"const-oid\",\"optional\":true,\"req\":\"^0.9.2\"},{\"name\":\"der_derive\",\"optional\":true,\"req\":\"^0.7.2\"},{\"name\":\"flagset\",\"optional\":true,\"req\":\"^0.4.3\"},{\"kind\":\"dev\",\"name\":\"hex-literal\",\"req\":\"^0.4.1\"},{\"features\":[\"alloc\"],\"name\":\"pem-rfc7468\",\"optional\":true,\"req\":\"^0.7\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1\"},{\"default_features\":false,\"name\":\"time\",\"optional\":true,\"req\":\"^0.3.4\"},{\"default_features\":false,\"name\":\"zeroize\",\"optional\":true,\"req\":\"^1.5\"}],\"features\":{\"alloc\":[\"zeroize?/alloc\"],\"arbitrary\":[\"dep:arbitrary\",\"const-oid?/arbitrary\",\"std\"],\"bytes\":[\"dep:bytes\",\"alloc\"],\"derive\":[\"dep:der_derive\"],\"oid\":[\"dep:const-oid\"],\"pem\":[\"dep:pem-rfc7468\",\"alloc\",\"zeroize\"],\"real\":[],\"std\":[\"alloc\"]}}",
@@ -2233,7 +2229,7 @@
"utf8_iter_1.0.4": "{\"dependencies\":[],\"features\":{}}",
"utf8parse_0.2.2": "{\"dependencies\":[],\"features\":{\"default\":[],\"nightly\":[]}}",
"uuid_1.20.0": "{\"dependencies\":[{\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.1.3\"},{\"default_features\":false,\"name\":\"atomic\",\"optional\":true,\"req\":\"^0.6\"},{\"default_features\":false,\"name\":\"borsh\",\"optional\":true,\"req\":\"^1\"},{\"default_features\":false,\"name\":\"borsh-derive\",\"optional\":true,\"req\":\"^1\"},{\"features\":[\"derive\"],\"name\":\"bytemuck\",\"optional\":true,\"req\":\"^1.20.0\"},{\"name\":\"getrandom\",\"optional\":true,\"req\":\"^0.3\",\"target\":\"cfg(not(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\"))))\"},{\"default_features\":false,\"name\":\"js-sys\",\"optional\":true,\"req\":\"^0.3\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\"), target_feature = \\\"atomics\\\"))\"},{\"default_features\":false,\"name\":\"md-5\",\"optional\":true,\"req\":\"^0.10\"},{\"name\":\"rand\",\"optional\":true,\"req\":\"^0.9\",\"target\":\"cfg(not(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\"))))\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.221\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0.56\"},{\"default_features\":false,\"name\":\"sha1_smol\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"slog\",\"optional\":true,\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.52\"},{\"name\":\"uuid-rng-internal-lib\",\"optional\":true,\"package\":\"uuid-rng-internal\",\"req\":\"^1.20.0\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\"},{\"default_features\":false,\"features\":[\"msrv\"],\"name\":\"wasm-bindgen\",\"optional\":true,\"req\":\"^0.2\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen\",\"req\":\"^0.2\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\"},{\"features\":[\"derive\"],\"name\":\"zerocopy\",\"optional\":true,\"req\":\"^0.8\"}],\"features\":{\"atomic\":[\"dep:atomic\"],\"borsh\":[\"dep:borsh\",\"dep:borsh-derive\"],\"default\":[\"std\"],\"fast-rng\":[\"rng\",\"dep:rand\"],\"js\":[\"dep:wasm-bindgen\",\"dep:js-sys\"],\"macro-diagnostics\":[],\"md5\":[\"dep:md-5\"],\"rng\":[\"dep:getrandom\"],\"rng-getrandom\":[\"rng\",\"dep:getrandom\",\"uuid-rng-internal-lib\",\"uuid-rng-internal-lib/getrandom\"],\"rng-rand\":[\"rng\",\"dep:rand\",\"uuid-rng-internal-lib\",\"uuid-rng-internal-lib/rand\"],\"serde\":[\"dep:serde_core\"],\"sha1\":[\"dep:sha1_smol\"],\"std\":[\"wasm-bindgen?/std\",\"js-sys?/std\"],\"v1\":[\"atomic\"],\"v3\":[\"md5\"],\"v4\":[\"rng\"],\"v5\":[\"sha1\"],\"v6\":[\"atomic\"],\"v7\":[\"rng\"],\"v8\":[]}}",
"v8_150.4.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"align-data\",\"req\":\"^0.1.0\"},{\"kind\":\"build\",\"name\":\"bindgen\",\"req\":\"^0.72\"},{\"kind\":\"dev\",\"name\":\"bindgen\",\"req\":\"^0.72\"},{\"name\":\"bitflags\",\"req\":\"^2.5\"},{\"kind\":\"dev\",\"name\":\"bytes\",\"req\":\"^1\"},{\"kind\":\"build\",\"name\":\"fslock\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"fslock\",\"req\":\"^0.2\"},{\"kind\":\"build\",\"name\":\"gzip-header\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"gzip-header\",\"req\":\"^1.0.0\"},{\"kind\":\"build\",\"name\":\"home\",\"req\":\"^0\"},{\"kind\":\"dev\",\"name\":\"home\",\"req\":\"^0\"},{\"kind\":\"build\",\"name\":\"miniz_oxide\",\"req\":\"^0.8.8\"},{\"kind\":\"dev\",\"name\":\"miniz_oxide\",\"req\":\"^0.8.8\"},{\"name\":\"paste\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1\"},{\"features\":[\"zoneinfo64\"],\"name\":\"temporal_capi\",\"req\":\"^0.2.3\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.96\"},{\"kind\":\"build\",\"name\":\"which\",\"req\":\"^6\"},{\"kind\":\"dev\",\"name\":\"which\",\"req\":\"^6\"}],\"features\":{\"default\":[\"use_custom_libcxx\"],\"simdutf\":[],\"use_custom_libcxx\":[],\"v8_enable_pointer_compression\":[],\"v8_enable_sandbox\":[\"v8_enable_pointer_compression\"],\"v8_enable_v8_checks\":[]}}",
"v8_152.2.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"align-data\",\"req\":\"^0.1.0\"},{\"kind\":\"build\",\"name\":\"bindgen\",\"req\":\"^0.72\"},{\"kind\":\"dev\",\"name\":\"bindgen\",\"req\":\"^0.72\"},{\"name\":\"bitflags\",\"req\":\"^2.5\"},{\"kind\":\"dev\",\"name\":\"bytes\",\"req\":\"^1\"},{\"kind\":\"build\",\"name\":\"fslock\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"fslock\",\"req\":\"^0.2\"},{\"kind\":\"build\",\"name\":\"gzip-header\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"gzip-header\",\"req\":\"^1.0.0\"},{\"kind\":\"build\",\"name\":\"home\",\"req\":\"^0\"},{\"kind\":\"dev\",\"name\":\"home\",\"req\":\"^0\"},{\"kind\":\"build\",\"name\":\"miniz_oxide\",\"req\":\"^0.8.8\"},{\"kind\":\"dev\",\"name\":\"miniz_oxide\",\"req\":\"^0.8.8\"},{\"name\":\"paste\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1\"},{\"features\":[\"zoneinfo64\"],\"name\":\"temporal_capi\",\"req\":\"^0.2.3\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.96\"},{\"kind\":\"build\",\"name\":\"which\",\"req\":\"^6\"},{\"kind\":\"dev\",\"name\":\"which\",\"req\":\"^6\"}],\"features\":{\"default\":[\"use_custom_libcxx\"],\"simdutf\":[],\"use_custom_libcxx\":[],\"v8_enable_pointer_compression\":[],\"v8_enable_sandbox\":[\"v8_enable_pointer_compression\"],\"v8_enable_v8_checks\":[]}}",
"valuable_0.1.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.3\"},{\"name\":\"valuable-derive\",\"optional\":true,\"req\":\"=0.1.1\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"derive\":[\"valuable-derive\"],\"std\":[\"alloc\"]}}",
"vcpkg_0.2.15": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"tempdir\",\"req\":\"^0.3.7\"}],\"features\":{}}",
"version-compare_0.2.1": "{\"dependencies\":[],\"features\":{}}",
+4 -4
View File
@@ -6313,9 +6313,9 @@ checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4"
[[package]]
name = "deno_core_icudata"
version = "0.77.0"
version = "0.78.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9efff8990a82c1ae664292507e1a5c6749ddd2312898cdf9cd7cb1fd4bc64c6"
checksum = "b963d2d79672b4c379e4511acccd27bb35b4c1b32a93f596d52ff14a064293bc"
[[package]]
name = "der"
@@ -16332,9 +16332,9 @@ dependencies = [
[[package]]
name = "v8"
version = "150.4.0"
version = "152.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42a978ff11f15b24e5c05a7123cf2b68f41e763546699781a924ef4e2cf43a49"
checksum = "a10fe1a92da5c32c7c7f838ce36c0ccfcfd5edf0865b58bdde820aa64cea9888"
dependencies = [
"bindgen",
"bitflags 2.13.1",
+2 -2
View File
@@ -364,7 +364,7 @@ crossbeam-channel = "0.5.15"
crypto_box = { version = "0.9.1", features = ["seal"] }
crossterm = "0.29.0"
ctor = "0.6.3"
deno_core_icudata = "0.77.0"
deno_core_icudata = "0.78.0"
derive_more = "2"
diffy = "0.4.2"
dirs = "6"
@@ -540,7 +540,7 @@ unicode-width = "0.2"
url = "2"
urlencoding = "2.1"
uuid = "1"
v8 = "=150.4.0"
v8 = "=152.2.0"
vt100 = "0.16.2"
walkdir = "2.5.0"
webbrowser = "1.2.2"
+1 -1
View File
@@ -40,7 +40,7 @@ pub(crate) fn ensure_v8_initialized() -> Result<(), String> {
}
fn initialize_v8_with_mode(jit_mode: V8JitMode) -> Result<V8Initialization, String> {
v8::icu::set_common_data_77(deno_core_icudata::ICU_DATA)
v8::icu::set_common_data_78(deno_core_icudata::ICU_DATA)
.map_err(|error_code| format!("failed to initialize ICU data: {error_code}"))?;
// The pinned V8 can inline Array.prototype.sort with incompatible element kinds.
// Disable the affected paths in TurboFan and the Maglev/Turbolev frontend until
+1 -4
View File
@@ -2,10 +2,7 @@ load("//:defs.bzl", "codex_rust_crate")
codex_rust_crate(
name = "v8-poc",
crate_features = select({
"@llvm//constraints/windows/abi:msvc": [],
"//conditions:default": ["sandbox"],
}),
crate_features = ["sandbox"],
crate_name = "codex_v8_poc",
deps_extra = ["@crates//:v8"],
)
+1
View File
@@ -25,6 +25,7 @@ exports_files([
"ring_windows_msvc_include_dirs.patch",
"tikv-jemalloc-sys_make_env.patch",
"tikv-jemalloc-sys_dependency_flags.patch",
"v8_array_sort_elements_kind.patch",
"v8_bazel_rules.patch",
"v8_module_deps.patch",
"v8_source_portability.patch",
+163
View File
@@ -0,0 +1,163 @@
# What: backport CVE-2026-85046 to V8 15.2.124.1 by rejecting mixed
# elements kinds when inlining Array.prototype.sort.
# Scope: Maglev/TurboFan implementation guards and the upstream regression test.
# Upstream M152 fix: https://github.com/v8/v8/commit/94c34b200ae9caf83d06c167a070746a1c7e825c
# CVE advisory: https://chromereleases.googleblog.com/2026/09/stable-channel-update-for-desktop_01882797386.html
diff --git a/orig/v8-15.2.124.1/src/compiler/js-call-reducer.cc b/mod/v8-15.2.124.1/src/compiler/js-call-reducer.cc
index e8707261d3e2..0e2d9bfd0a74 100644
--- a/orig/v8-15.2.124.1/src/compiler/js-call-reducer.cc
+++ b/mod/v8-15.2.124.1/src/compiler/js-call-reducer.cc
@@ -4068,6 +4068,10 @@ class IteratingArrayBuiltinHelper {
return;
}
+ all_elements_kinds_equal_ = std::all_of(
+ receiver_maps.begin(), receiver_maps.end(),
+ [&](MapRef map) { return map.elements_kind() == elements_kind_; });
+
// TODO(jgruber): May only be needed for holey elements kinds.
if (!dependencies->DependOnNoElementsProtector()) return;
@@ -4083,10 +4087,13 @@ class IteratingArrayBuiltinHelper {
Control control() const { return control_; }
MapInference* inference() { return &inference_; }
ElementsKind elements_kind() const { return elements_kind_; }
+ // False when elements_kind() is a union over differing receiver kinds.
+ bool all_elements_kinds_equal() const { return all_elements_kinds_equal_; }
private:
bool can_reduce_ = false;
bool has_stability_dependency_ = false;
+ bool all_elements_kinds_equal_ = false;
Node* receiver_;
Effect effect_;
Control control_;
@@ -4126,6 +4133,11 @@ Reduction JSCallReducer::ReduceArraySort(Node* node,
IteratingArrayBuiltinHelper h(node, broker(), jsgraph(), dependencies());
if (!h.can_reduce()) return h.inference()->NoChange();
+ // The union kind is only an upper bound on each receiver's own kind. Loads
+ // through it widen and are sound; stores narrow and are not. Unlike the
+ // iterating builtins, sort writes its snapshot back into the receiver.
+ if (!h.all_elements_kinds_equal()) return h.inference()->NoChange();
+
// Only non-holey, non-double PACKED kinds are supported. Holey arrays need
// hole handling; double arrays need a FixedDoubleArray temp copy.
if (IsHoleyElementsKind(h.elements_kind())) return h.inference()->NoChange();
diff --git a/orig/v8-15.2.124.1/src/maglev/maglev-graph-builder.cc b/mod/v8-15.2.124.1/src/maglev/maglev-graph-builder.cc
index c40cadb32d92..c6ae7f791267 100644
--- a/orig/v8-15.2.124.1/src/maglev/maglev-graph-builder.cc
+++ b/mod/v8-15.2.124.1/src/maglev/maglev-graph-builder.cc
@@ -9797,6 +9797,16 @@ MaybeReduceResult MaglevGraphBuilder::TryReduceArrayPrototypeSort(
" array iteration");
}
+ // The union kind is only an upper bound on each receiver's own kind. Loads
+ // through it widen and are sound; stores narrow and are not. Unlike the
+ // iterating builtins, sort writes its snapshot back into the receiver.
+ if (std::any_of(possible_maps->begin(), possible_maps->end(),
+ [&](compiler::MapRef map) {
+ return map.elements_kind() != elements_kind;
+ })) {
+ FAIL(" to reduce Array.prototype.sort - receiver elements kinds disagree");
+ }
+
// Holey arrays require holes to be moved to the end of the sorted result
// (ECMA-262 23.1.3.30 step 5, skip-holes mode). The insertion sort does
// not implement this, so bail out for any holey kind.
diff --git a/orig/v8-15.2.124.1/test/mjsunit/regress/regress-crbug-542403045.js b/mod/v8-15.2.124.1/test/mjsunit/regress/regress-crbug-542403045.js
new file mode 100644
index 000000000000..e60a974f8784
--- /dev/null
+++ b/mod/v8-15.2.124.1/test/mjsunit/regress/regress-crbug-542403045.js
@@ -0,0 +1,89 @@
+// Copyright 2026 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --maglev
+
+// The inlined sort snapshots the receiver's elements, runs comparefn, then
+// copies the snapshot back specialized on the receiver's elements kind. With
+// polymorphic {PACKED_SMI,PACKED} feedback that kind is the union
+// PACKED_ELEMENTS, which no longer describes a receiver that comparefn has
+// narrowed back to PACKED_SMI_ELEMENTS.
+
+function sort(a) {
+ function compare() {
+ a.fill(0);
+ return 0;
+ }
+ return a.sort(compare);
+}
+
+%PrepareFunctionForOptimization(sort);
+for (let i = 0; i < 100; ++i) {
+ sort([1, 2]);
+ sort([{}, {}]);
+}
+%OptimizeMaglevOnNextCall(sort);
+sort([1, 2]);
+
+const object = {};
+const bad = [object, {}];
+sort(bad);
+
+// A Smi-elements array must never hold a HeapObject.
+assertFalse(%HasSmiElements(bad) && bad[0] === object);
+
+// Mixed-kind feedback is not inlined, but still sorts correctly.
+function sortMixed(a) {
+ return a.sort((x, y) => x - y);
+}
+%PrepareFunctionForOptimization(sortMixed);
+for (let i = 0; i < 100; ++i) {
+ sortMixed([2, 1]);
+ sortMixed([{}, {}]);
+}
+%OptimizeMaglevOnNextCall(sortMixed);
+assertEquals([1, 2, 3], sortMixed([3, 1, 2]));
+
+// Same via a Smi/double mix, whose union kind PACKED_DOUBLE_ELEMENTS is
+// rejected by the double bailout rather than the kind-agreement one.
+function sortDouble(a) {
+ function compare(x, y) {
+ a.fill(0);
+ return x - y;
+ }
+ return a.sort(compare);
+}
+%PrepareFunctionForOptimization(sortDouble);
+for (let i = 0; i < 100; ++i) {
+ sortDouble([2, 1]);
+ sortDouble([2.5, 1.5]);
+}
+%OptimizeMaglevOnNextCall(sortDouble);
+sortDouble([2, 1]);
+// The sort writes its snapshot back, so comparefn's fill is not observable.
+assertEquals([1.5, 2.5], sortDouble([2.5, 1.5]));
+
+// Sites whose receiver kinds agree keep the inlined path, including when the
+// maps themselves differ.
+function withProperty() {
+ const a = [{}, {}];
+ a.foo = 1;
+ return a;
+}
+function sortSameKind(a) {
+ return a.sort((x, y) => 0);
+}
+%PrepareFunctionForOptimization(sortSameKind);
+for (let i = 0; i < 100; ++i) {
+ sortSameKind([{}, {}]);
+ sortSameKind(withProperty());
+}
+%OptimizeMaglevOnNextCall(sortSameKind);
+sortSameKind([{}, {}]);
+assertOptimized(sortSameKind);
+for (let i = 0; i < 100; ++i) {
+ sortSameKind([{}, {}]);
+ sortSameKind(withProperty());
+}
+assertOptimized(sortSameKind);
+87 -84
View File
@@ -3,20 +3,23 @@
# Scope: Bazel BUILD/defs/BUILD.icu integration only, including dependency
# wiring, generated sources, and visibility; no standalone V8 source patching.
diff --git a/orig/v8-15.0.245.2/bazel/defs.bzl b/mod/v8-15.0.245.2/bazel/defs.bzl
index bbe1495..6673518 100644
--- a/orig/v8-15.0.245.2/bazel/defs.bzl
+++ b/mod/v8-15.0.245.2/bazel/defs.bzl
@@ -33,9 +33,25 @@ _create_option_int = rule(
diff --git a/orig/v8-15.2.124.1/bazel/defs.bzl b/mod/v8-15.2.124.1/bazel/defs.bzl
--- a/orig/v8-15.2.124.1/bazel/defs.bzl
+++ b/mod/v8-15.2.124.1/bazel/defs.bzl
@@ -42,12 +42,30 @@
)
def v8_flag(name, default = False):
- _create_option_flag(name = name, build_setting_default = default)
- _create_option_flag(name = name, build_setting_default = default, scope = "universal")
- native.config_setting(name = "is_" + name, flag_values = {name: "True"})
- native.config_setting(name = "is_not_" + name, flag_values = {name: "False"})
-
-def v8_string(name, default = ""):
- _create_option_string(name = name, build_setting_default = default, scope = "universal")
+ _create_option_flag(
+ name = name,
+ build_setting_default = default,
+ scope = "universal",
+ visibility = ["//visibility:public"],
+ )
+ native.config_setting(
@@ -29,17 +32,19 @@ index bbe1495..6673518 100644
+ flag_values = {name: "False"},
+ visibility = ["//visibility:public"],
+ )
-def v8_string(name, default = ""):
- _create_option_string(name = name, build_setting_default = default)
+
+def v8_string(name, default = "", visibility = None):
+ _create_option_string(
+ name = name,
+ build_setting_default = default,
+ scope = "universal",
+ visibility = visibility,
+ )
@@ -97,7 +109,13 @@ v8_config = rule(
def v8_int(name, default = 0):
_create_option_int(name = name, build_setting_default = default, scope = "universal")
@@ -106,7 +124,13 @@
def _default_args():
return struct(
- deps = [":define_flags", "@libcxx//:libc++"],
@@ -53,7 +58,7 @@ index bbe1495..6673518 100644
defines = select({
"@v8//bazel/config:is_windows": [
"UNICODE",
@@ -127,12 +145,15 @@ def _default_args():
@@ -136,12 +160,15 @@
],
"//conditions:default": [],
}) + select({
@@ -62,23 +67,26 @@ index bbe1495..6673518 100644
- "-Wno-deprecated-this-capture",
- "-Wno-deprecated-declarations",
- "-std=c++20",
- ],
+ "@v8//:is_v8_use_rusty_v8_custom_libcxx": [
+ "-nostdinc++",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE",
+ "-D_LIBCPP_INSTRUMENTED_WITH_ASAN=0",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
],
+ ],
+ "//conditions:default": [],
+ }) + select({
"@v8//bazel/config:is_gcc": [
"-Wno-extra",
"-Wno-array-bounds",
@@ -152,9 +173,17 @@ def _default_args():
@@ -161,9 +188,17 @@
"-std=gnu++2a",
],
"@v8//bazel/config:is_windows": [
- "/std:c++20",
- ],
- "//conditions:default": [],
+ "-Wno-invalid-offsetof",
+ "-Wno-deprecated-this-capture",
+ "-Wno-deprecated-declarations",
@@ -89,12 +97,11 @@ index bbe1495..6673518 100644
+ "-Wno-deprecated-this-capture",
+ "-Wno-deprecated-declarations",
+ "-std=c++20",
],
- "//conditions:default": [],
+ ],
}) + select({
"@v8//bazel/config:is_gcc_fastbuild": [
# Non-debug builds without optimizations fail because
@@ -178,12 +207,12 @@ def _default_args():
@@ -187,12 +222,12 @@
includes = ["include"],
linkopts = select({
"@v8//bazel/config:is_windows": [
@@ -111,7 +118,7 @@ index bbe1495..6673518 100644
}) + select({
":should_add_rdynamic": ["-rdynamic"],
"//conditions:default": [],
@@ -459,6 +488,11 @@
@@ -466,6 +501,11 @@
def _mksnapshot(ctx):
prefix = ctx.attr.prefix
suffix = ctx.attr.suffix
@@ -123,7 +130,8 @@ index bbe1495..6673518 100644
outs = [
ctx.actions.declare_file(prefix + "/snapshot" + suffix + ".cc"),
ctx.actions.declare_file(prefix + "/embedded" + suffix + ".S"),
@@ -477,6 +511,6 @@
@@ -483,7 +523,7 @@
"--embedded_src",
outs[1].path,
] + ctx.attr.args,
- executable = ctx.executable.tool,
@@ -131,7 +139,7 @@ index bbe1495..6673518 100644
progress_message = "Running mksnapshot",
)
return [DefaultInfo(files = depset(outs))]
@@ -491,6 +525,12 @@
@@ -498,6 +538,12 @@
executable = True,
cfg = "exec",
),
@@ -144,7 +152,7 @@ index bbe1495..6673518 100644
"target_os": attr.string(mandatory = True),
"prefix": attr.string(mandatory = True),
"suffix": attr.string(mandatory = True),
@@ -504,6 +544,7 @@
@@ -511,6 +557,7 @@
args = args,
prefix = "noicu",
tool = ":noicu/mksnapshot" + suffix,
@@ -152,7 +160,7 @@ index bbe1495..6673518 100644
suffix = suffix,
target_os = select({
"@v8//bazel/config:is_macos": "mac",
@@ -516,6 +557,7 @@
@@ -523,6 +570,7 @@
args = args,
prefix = "icu",
tool = ":icu/mksnapshot" + suffix,
@@ -160,22 +168,21 @@ index bbe1495..6673518 100644
suffix = suffix,
target_os = select({
"@v8//bazel/config:is_macos": "mac",
diff --git a/orig/v8-15.0.245.2/BUILD.bazel b/mod/v8-15.0.245.2/BUILD.bazel
index b432f86..28c567b 100644
--- a/orig/v8-15.0.245.2/BUILD.bazel
+++ b/mod/v8-15.0.245.2/BUILD.bazel
@@ -148,6 +148,10 @@ v8_flag(name = "v8_enable_trace_maps")
diff --git a/orig/v8-15.2.124.1/BUILD.bazel b/mod/v8-15.2.124.1/BUILD.bazel
--- a/orig/v8-15.2.124.1/BUILD.bazel
+++ b/mod/v8-15.2.124.1/BUILD.bazel
@@ -154,6 +154,10 @@
v8_flag(name = "v8_enable_v8_checks")
+v8_flag(name = "v8_enable_sandbox")
+
+v8_flag(name = "v8_use_rusty_v8_custom_libcxx")
+
v8_flag(name = "v8_enable_verify_csa")
v8_flag(name = "v8_enable_verify_heap")
@@ -313,7 +317,8 @@ v8_int(
@@ -319,7 +323,8 @@
# If no explicit value for v8_enable_pointer_compression, we set it to 'none'.
v8_string(
name = "v8_enable_pointer_compression",
@@ -183,9 +190,9 @@ index b432f86..28c567b 100644
+ default = "False",
+ visibility = ["//visibility:public"],
)
# Default setting for v8_enable_pointer_compression.
@@ -513,6 +517,7 @@ v8_config(
@@ -520,6 +525,7 @@
"v8_enable_slow_dchecks": "ENABLE_SLOW_DCHECKS",
"v8_enable_runtime_call_stats": "V8_RUNTIME_CALL_STATS",
"v8_enable_snapshot_native_code_counters": "V8_SNAPSHOT_NATIVE_CODE_COUNTERS",
@@ -193,10 +200,10 @@ index b432f86..28c567b 100644
"v8_enable_trace_maps": "V8_TRACE_MAPS",
"v8_enable_turbofan": "V8_ENABLE_TURBOFAN",
"v8_enable_v8_checks": "V8_ENABLE_CHECKS",
@@ -4125,28 +4130,14 @@ filegroup(
@@ -4170,28 +4176,14 @@
}),
)
-v8_library(
- name = "lib_dragonbox",
- srcs = ["third_party/dragonbox/src/include/dragonbox/dragonbox.h"],
@@ -206,11 +213,8 @@ index b432f86..28c567b 100644
- includes = [
- "third_party/dragonbox/src/include",
- ],
+alias(
+ name = "lib_dragonbox",
+ actual = "@dragonbox//:dragonbox",
)
-)
-
-v8_library(
- name = "lib_fp16",
- srcs = ["third_party/fp16/src/include/fp16.h"],
@@ -223,12 +227,17 @@ index b432f86..28c567b 100644
- "third_party/fp16/src/include",
- ],
+alias(
+ name = "lib_dragonbox",
+ actual = "@dragonbox//:dragonbox",
+)
+
+alias(
+ name = "lib_fp16",
+ actual = "@fp16//:fp16",
)
filegroup(
@@ -4441,6 +4432,20 @@ genrule(
@@ -4486,6 +4478,20 @@
srcs = [
"include/js_protocol.pdl",
"src/inspector/inspector_protocol_config.json",
@@ -249,7 +258,7 @@ index b432f86..28c567b 100644
],
outs = [
"include/inspector/Debugger.h",
@@ -4462,15 +4467,19 @@ genrule(
@@ -4507,15 +4513,19 @@
"src/inspector/protocol/Schema.cpp",
"src/inspector/protocol/Schema.h",
],
@@ -272,11 +281,13 @@ index b432f86..28c567b 100644
+ requirement("markupsafe"),
],
)
@@ -4484,6 +4493,35 @@ filegroup(
@@ -4527,6 +4537,35 @@
":v8_libsampler_files",
":v8_shared_internal_headers",
],
)
+)
+
+cc_library(
+ name = "rusty_v8_internal_headers",
+ hdrs = [
@@ -304,34 +315,27 @@ index b432f86..28c567b 100644
+ ],
+ strip_include_prefix = "",
+ visibility = ["//visibility:public"],
+)
+
)
filegroup(
name = "d8_files",
srcs = [
@@ -4576,12 +4614,10 @@ cc_library(
@@ -4609,11 +4648,9 @@
strip_include_prefix = "noicu",
)
-
+
-cc_library(
- name = "llvm_libc_headers",
+alias(
name = "llvm_libc_headers",
- hdrs = glob(["third_party/llvm-libc/src/shared/**/*.h"]),
- includes = ["third_party/llvm-libc/src"],
- defines = ["LIBC_NAMESPACE=__llvm_libc_cr"],
-)
+alias(
+ name = "llvm_libc_headers",
+ actual = "@@//third_party/v8:rusty_v8_llvm_libc_headers",
+)
-
+
)
v8_library(
name = "v8_libbase",
@@ -4603,16 +4641,9 @@ cc_library(
@@ -4660,16 +4697,9 @@
],
)
-cc_library(
- name = "simdutf",
- srcs = ["third_party/simdutf/simdutf.cpp"],
@@ -346,9 +350,9 @@ index b432f86..28c567b 100644
+ name = "simdutf",
+ actual = "@simdutf//:simdutf",
)
v8_library(
@@ -4629,7 +4660,7 @@ v8_library(
@@ -4686,7 +4716,7 @@
copts = ["-Wno-implicit-fallthrough"],
icu_deps = [
":icu/generated_torque_definitions_headers",
@@ -357,7 +361,7 @@ index b432f86..28c567b 100644
],
icu_srcs = [
":generated_regexp_special_case",
@@ -4644,7 +4675,7 @@ v8_library(
@@ -4701,7 +4731,7 @@
],
deps = [
":lib_dragonbox",
@@ -366,15 +370,15 @@ index b432f86..28c567b 100644
":lib_fp16",
":simdutf",
":v8_libbase",
@@ -4700,6 +4731,7 @@ alias(
@@ -4757,6 +4787,7 @@
alias(
name = "core_lib_icu",
actual = "icu/v8",
+ visibility = ["//visibility:public"],
)
v8_library(
@@ -4751,7 +4783,7 @@ v8_binary(
@@ -4808,7 +4839,7 @@
],
deps = [
":v8_libbase",
@@ -382,8 +386,8 @@ index b432f86..28c567b 100644
+ "@icu//:icu",
],
)
@@ -4791,9 +4823,20 @@ v8_binary(
@@ -4852,9 +4883,20 @@
":icu/generated_torque_initializers",
":icu/v8_initializers_files",
],
@@ -405,10 +409,9 @@ index b432f86..28c567b 100644
}),
noicu_deps = [":v8_libshared_noicu"],
noicu_srcs = [
diff --git a/orig/v8-15.0.245.2/bazel/BUILD.icu b/mod/v8-15.0.245.2/bazel/BUILD.icu
index 5fda2f4..8c3c372 100644
--- a/orig/v8-15.0.245.2/bazel/BUILD.icu
+++ b/mod/v8-15.0.245.2/bazel/BUILD.icu
diff --git a/orig/v8-15.2.124.1/bazel/BUILD.icu b/mod/v8-15.2.124.1/bazel/BUILD.icu
--- a/orig/v8-15.2.124.1/bazel/BUILD.icu
+++ b/mod/v8-15.2.124.1/bazel/BUILD.icu
@@ -1,3 +1,24 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
@@ -434,7 +437,7 @@ index 5fda2f4..8c3c372 100644
# Copyright 2021 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -16,15 +37,12 @@ cc_library(
@@ -16,15 +37,12 @@
]),
copts = select({
"@platforms//os:windows": [
@@ -452,15 +455,15 @@ index 5fda2f4..8c3c372 100644
data = [":icudata"],
defines = [
"HAVE_DLOPEN=0",
@@ -54,6 +72,7 @@ cc_library(
@@ -54,6 +72,7 @@
"U_ICUDATAENTRY_IN_COMMON",
],
tags = ["requires-rtti"],
+ deps = CUSTOM_LIBCXX_DEPS,
alwayslink = 1,
)
@@ -65,19 +84,16 @@ cc_library(
@@ -65,19 +84,16 @@
]),
copts = select({
"@platforms//os:windows": [
@@ -482,8 +485,8 @@ index 5fda2f4..8c3c372 100644
+ deps = [":icuuc"] + CUSTOM_LIBCXX_DEPS,
alwayslink = 1,
)
@@ -93,13 +109,10 @@ cc_library(
@@ -93,13 +109,10 @@
]),
copts = select({
"@platforms//os:windows": [
@@ -499,7 +502,7 @@ index 5fda2f4..8c3c372 100644
include_prefix = "third_party/icu",
local_defines = [
"U_COMMON_IMPLEMENTATION",
@@ -108,6 +121,6 @@ cc_library(
@@ -108,6 +121,6 @@
deps = [
":icui18n",
":icuuc",
+78 -86
View File
@@ -3,25 +3,14 @@
# Scope: upstream MODULE.bazel only; affects external repo resolution and Bazel
# module wiring, not V8 source files.
diff --git a/orig/v8-15.0.245.2/MODULE.bazel b/mod/v8-15.0.245.2/MODULE.bazel
index b8bf8bd..573f463 100644
--- a/orig/v8-15.0.245.2/MODULE.bazel
+++ b/mod/v8-15.0.245.2/MODULE.bazel
@@ -8,193 +8,67 @@ bazel_dep(name = "rules_cc", version = "0.2.0")
bazel_dep(name = "rules_python", version = "1.0.0")
diff --git a/orig/v8-15.2.124.1/MODULE.bazel b/mod/v8-15.2.124.1/MODULE.bazel
--- a/orig/v8-15.2.124.1/MODULE.bazel
+++ b/mod/v8-15.2.124.1/MODULE.bazel
@@ -8,12 +8,65 @@
bazel_dep(name = "rules_python", version = "1.7.0")
bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "abseil-cpp", version = "20250814.0")
bazel_dep(name = "abseil-cpp", version = "20250814.1")
-bazel_dep(name = "highway", version = "1.2.0")
-
-pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
-pip.parse(
- hub_name = "v8_python_deps",
- python_version = "3.11",
- requirements_lock = "//:bazel/requirements.txt",
- extra_pip_args = [
- "--require-hashes",
- "--index-url=https://pypi.org/simple",
- ],
+bazel_dep(name = "rules_license", version = "0.0.4")
+
+git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
@@ -31,11 +20,63 @@ index b8bf8bd..573f463 100644
+ name = "highway",
+ patch_args = ["-p1"],
+ patches = ["@v8//:bazel/highway.patch"],
+ sha256 = "7e0be78b8318e8bdbf6fa545d2ecb4c90f947df03f7aadc42c1967f019e63343",
+ strip_prefix = "highway-1.2.0",
+ urls = ["https://github.com/google/highway/archive/refs/tags/1.2.0.tar.gz"],
+ sha256 = "741d705781e0b3e406beda8f1f994fbae01321237ce8023a1ad90fbaf7940c25",
+ strip_prefix = "highway-2607d3b5b0113992fe84d3848859eae13b3b52c1",
+ urls = ["https://github.com/google/highway/archive/2607d3b5b0113992fe84d3848859eae13b3b52c1.tar.gz"],
+)
+
+git_repository(
+ name = "icu",
+ build_file = "@v8//:bazel/BUILD.icu",
+ commit = "d578f2e8b7bd5938e21cfb6bf15c079e0aa5b738",
+ patch_cmds = ["find source -name BUILD.bazel | xargs rm"],
+ patch_cmds_win = ["Get-ChildItem -Path source -File -Include BUILD.bazel -Recurse | Remove-Item"],
+ remote = "https://chromium.googlesource.com/chromium/deps/icu.git",
+)
+
+http_archive(
+ name = "fast_float",
+ build_file_content = 'load("@rules_cc//cc:defs.bzl", "cc_library")\n\ncc_library(\n name = "fast_float",\n hdrs = glob(["include/fast_float/*.h"]),\n include_prefix = "third_party/fast_float/src/include",\n strip_include_prefix = "include",\n visibility = ["//visibility:public"],\n)\n',
+ sha256 = "76f958dd97b1cf4d8862d1f0986a47d4bdfa8845252bae15ef0f40de3b95961f",
+ strip_prefix = "fast_float-8.2.10",
+ urls = ["https://github.com/fastfloat/fast_float/archive/refs/tags/v8.2.10.tar.gz"],
+)
+
+http_archive(
+ name = "simdutf",
+ build_file_content = 'load("@rules_cc//cc:defs.bzl", "cc_library")\n\ncc_library(\n name = "simdutf",\n srcs = ["src/simdutf.cpp"],\n hdrs = glob(["include/**/*.h"]),\n textual_hdrs = glob(["src/**/*.h", "src/**/*.cpp"], exclude = ["src/simdutf.cpp"]),\n copts = ["-std=c++20"],\n include_prefix = "third_party/simdutf",\n includes = ["include", "src"],\n strip_include_prefix = "include",\n visibility = ["//visibility:public"],\n)\n',
+ sha256 = "0180de81a1dd48a87b8c0442ffa81734f3db91a7350914107a449935124e3c6f",
+ strip_prefix = "simdutf-7.7.0",
+ urls = ["https://github.com/simdutf/simdutf/archive/refs/tags/v7.7.0.tar.gz"],
+)
+
+git_repository(
+ name = "dragonbox",
+ build_file_content = 'load("@rules_cc//cc:defs.bzl", "cc_library")\n\ncc_library(\n name = "dragonbox",\n hdrs = ["include/dragonbox/dragonbox.h"],\n include_prefix = "third_party/dragonbox/src/include",\n strip_include_prefix = "include",\n visibility = ["//visibility:public"],\n)\n',
+ commit = "beeeef91cf6fef89a4d4ba5e95d47ca64ccb3a44",
+ remote = "https://chromium.googlesource.com/external/github.com/jk-jeon/dragonbox.git",
+)
+
+git_repository(
+ name = "fp16",
+ build_file_content = 'load("@rules_cc//cc:defs.bzl", "cc_library")\n\ncc_library(\n name = "fp16",\n hdrs = glob(["include/**/*.h"]),\n include_prefix = "third_party/fp16/src/include",\n includes = ["include"],\n strip_include_prefix = "include",\n visibility = ["//visibility:public"],\n)\n',
+ commit = "782eea126dc5c755827be751a099eb01826175cf",
+ remote = "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git",
+)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "v8_python_deps",
python_version = "3.11",
+ # Use the pip resolver to preserve V8's hashes and repository names.
+ simpleapi_skip = ["jinja2", "markupsafe"],
requirements_lock = "//:bazel/requirements.txt",
extra_pip_args = [
"--require-hashes",
@@ -21,180 +74,3 @@
],
)
-use_repo(pip, "v8_python_deps")
use_repo(pip, "v8_python_deps")
-
-# Define the local LLVM toolchain repository
-llvm_toolchain_repository = use_repo_rule("//bazel/toolchain:llvm_repository.bzl", "llvm_toolchain_repository")
@@ -46,7 +87,7 @@ index b8bf8bd..573f463 100644
- config_file_content = """
-load("@rules_cc//cc:defs.bzl", "CcToolchainConfigInfo", "cc_common")
-load("@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", "feature", "flag_group", "flag_set", "tool_path")
-
-def _impl(ctx):
- tool_paths = [
- tool_path(name = "gcc", path = "bin/clang"),
@@ -152,32 +193,19 @@ index b8bf8bd..573f463 100644
- implementation = _impl,
- attrs = {},
- provides = [CcToolchainConfigInfo],
+git_repository(
+ name = "icu",
+ build_file = "@v8//:bazel/BUILD.icu",
+ commit = "a86a32e67b8d1384b33f8fa48c83a6079b86f8cd",
+ patch_cmds = ["find source -name BUILD.bazel | xargs rm"],
+ patch_cmds_win = ["Get-ChildItem -Path source -File -Include BUILD.bazel -Recurse | Remove-Item"],
+ remote = "https://chromium.googlesource.com/chromium/deps/icu.git",
)
-)
-""",
- build_file_content = """
-load("@rules_cc//cc:defs.bzl", "cc_toolchain")
-load(":cc_toolchain_config.bzl", "cc_toolchain_config")
-
-package(default_visibility = ["//visibility:public"])
-
-filegroup(
- name = "all_files",
- srcs = glob(["**/*"]),
+http_archive(
+ name = "fast_float",
+ build_file_content = 'load("@rules_cc//cc:defs.bzl", "cc_library")\n\ncc_library(\n name = "fast_float",\n hdrs = glob(["include/fast_float/*.h"]),\n include_prefix = "third_party/fast_float/src/include",\n strip_include_prefix = "include",\n visibility = ["//visibility:public"],\n)\n',
+ sha256 = "e14a33089712b681d74d94e2a11362643bd7d769ae8f7e7caefe955f57f7eacd",
+ strip_prefix = "fast_float-8.0.2",
+ urls = ["https://github.com/fastfloat/fast_float/archive/refs/tags/v8.0.2.tar.gz"],
)
-)
-
-filegroup(name = "empty")
-
-cc_toolchain_config(name = "k8_toolchain_config")
@@ -194,14 +222,8 @@ index b8bf8bd..573f463 100644
- supports_param_files = 0,
- toolchain_config = ":k8_toolchain_config",
- toolchain_identifier = "local_clang",
+http_archive(
+ name = "simdutf",
+ build_file_content = 'load("@rules_cc//cc:defs.bzl", "cc_library")\n\ncc_library(\n name = "simdutf",\n srcs = ["src/simdutf.cpp"],\n hdrs = glob(["include/**/*.h"]),\n textual_hdrs = glob(["src/**/*.h", "src/**/*.cpp"], exclude = ["src/simdutf.cpp"]),\n copts = ["-std=c++20"],\n include_prefix = "third_party/simdutf",\n includes = ["include", "src"],\n strip_include_prefix = "include",\n visibility = ["//visibility:public"],\n)\n',
+ sha256 = "0180de81a1dd48a87b8c0442ffa81734f3db91a7350914107a449935124e3c6f",
+ strip_prefix = "simdutf-7.7.0",
+ urls = ["https://github.com/simdutf/simdutf/archive/refs/tags/v7.7.0.tar.gz"],
)
-)
-
-toolchain(
- name = "cc_toolchain_k8",
- exec_compatible_with = [
@@ -216,13 +238,8 @@ index b8bf8bd..573f463 100644
- toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
-)
-""",
+git_repository(
+ name = "dragonbox",
+ build_file_content = 'load("@rules_cc//cc:defs.bzl", "cc_library")\n\ncc_library(\n name = "dragonbox",\n hdrs = ["include/dragonbox/dragonbox.h"],\n include_prefix = "third_party/dragonbox/src/include",\n strip_include_prefix = "include",\n visibility = ["//visibility:public"],\n)\n',
+ commit = "beeeef91cf6fef89a4d4ba5e95d47ca64ccb3a44",
+ remote = "https://chromium.googlesource.com/external/github.com/jk-jeon/dragonbox.git",
)
-)
-
-register_toolchains("@llvm_toolchain//:cc_toolchain_k8")
-
-# Define local repository for libc++ from third_party sources
@@ -230,47 +247,22 @@ index b8bf8bd..573f463 100644
-
-libcxx_repository(
- name = "libcxx",
+git_repository(
+ name = "fp16",
+ build_file_content = 'load("@rules_cc//cc:defs.bzl", "cc_library")\n\ncc_library(\n name = "fp16",\n hdrs = glob(["include/**/*.h"]),\n include_prefix = "third_party/fp16/src/include",\n includes = ["include"],\n strip_include_prefix = "include",\n visibility = ["//visibility:public"],\n)\n',
+ commit = "3d2de1816307bac63c16a297e8c4dc501b4076df",
+ remote = "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git",
)
-)
-
-single_version_override(
- module_name = "highway",
- patches = ["//bazel/patches:highway_rules_cc.patch"],
- patch_strip = 1,
+pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
+pip.parse(
+ hub_name = "v8_python_deps",
+ python_version = "3.11",
+ requirements_lock = "//:bazel/requirements.txt",
+ extra_pip_args = [
+ "--require-hashes",
+ "--index-url=https://pypi.org/simple",
+ ],
)
+use_repo(pip, "v8_python_deps")
diff --git a/mod/v8-15.0.245.2/bazel/highway.patch b/mod/v8-15.0.245.2/bazel/highway.patch
-)
diff --git a/orig/v8-15.2.124.1/bazel/highway.patch b/mod/v8-15.2.124.1/bazel/highway.patch
new file mode 100644
index 0000000..5a13dd0
--- /dev/null
+++ b/mod/v8-15.0.245.2/bazel/highway.patch
@@ -0,0 +1,25 @@
+++ b/mod/v8-15.2.124.1/bazel/highway.patch
@@ -0,0 +1,16 @@
+diff --git a/BUILD b/BUILD
+--- a/BUILD
++++ b/BUILD
+@@ -2,7 +2,7 @@
+ load("@bazel_skylib//lib:selects.bzl", "selects")
+ load("@rules_license//rules:license.bzl", "license")
+
+-load("@rules_cc//cc:defs.bzl", "cc_test")
++load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
+ # Placeholder#2 for Guitar, do not remove
+
+ package(
+@@ -134,11 +134,7 @@ COPTS = select({
+@@ -118,11 +118,7 @@
+ ],
+ })
+
+3 -3
View File
@@ -15,7 +15,7 @@ from codex_package.targets import TARGET_SPECS, TargetSpec
class FetchCodexV8ArtifactsTest(unittest.TestCase):
version = "150.4.0"
version = "152.2.0"
def setUp(self) -> None:
temporary = tempfile.TemporaryDirectory()
@@ -60,7 +60,7 @@ class FetchCodexV8ArtifactsTest(unittest.TestCase):
if create_pins:
pins = (
self.root / "third_party/v8/rusty_v8_150_4_0_release_manifests.sha256"
self.root / "third_party/v8/rusty_v8_152_2_0_release_manifests.sha256"
)
pins.parent.mkdir(parents=True)
digest = trusted_digest or hashlib.sha256(manifest).hexdigest()
@@ -211,7 +211,7 @@ class FetchCodexV8ArtifactsTest(unittest.TestCase):
spec, version=self.version, cache_root=self.root / "cache"
)
pins = (
self.root / "third_party/v8/rusty_v8_150_4_0_release_manifests.sha256"
self.root / "third_party/v8/rusty_v8_152_2_0_release_manifests.sha256"
)
pins.write_text(f"{'0' * 64} {name}\n")
download.reset_mock()
+143 -135
View File
@@ -30,40 +30,40 @@ config_setting(
)
alias(
name = "v8_150_4_0_x86_64_pc_windows_msvc",
actual = "@rusty_v8_150_4_0_x86_64_pc_windows_msvc_archive//file",
name = "v8_152_2_0_x86_64_pc_windows_msvc",
actual = "@rusty_v8_152_2_0_x86_64_pc_windows_msvc_archive//file",
)
alias(
name = "v8_150_4_0_aarch64_pc_windows_msvc",
actual = "@rusty_v8_150_4_0_aarch64_pc_windows_msvc_archive//file",
name = "v8_152_2_0_aarch64_pc_windows_msvc",
actual = "@rusty_v8_152_2_0_aarch64_pc_windows_msvc_archive//file",
)
alias(
name = "v8_150_4_0_aarch64_pc_windows_gnullvm",
name = "v8_152_2_0_aarch64_pc_windows_gnullvm",
# `rusty_v8` only ships prebuilt Windows archives for MSVC. Build the
# GNU-flavored archive in-tree so windows-gnullvm consumers can link
# against a matching ABI instead of trying to reuse the MSVC release.
actual = ":v8_150_4_0_aarch64_pc_windows_gnullvm_bazel",
actual = ":v8_152_2_0_aarch64_pc_windows_gnullvm_bazel",
)
alias(
name = "v8_150_4_0_x86_64_pc_windows_gnullvm",
actual = ":v8_150_4_0_x86_64_pc_windows_gnullvm_bazel",
name = "v8_152_2_0_x86_64_pc_windows_gnullvm",
actual = ":v8_152_2_0_x86_64_pc_windows_gnullvm_bazel",
)
alias(
name = "src_binding_release_x86_64_pc_windows_gnullvm_150_4_0_release",
name = "src_binding_release_x86_64_pc_windows_gnullvm_152_2_0_release",
# `rusty_v8` does not publish a Windows GNU binding file. The generated
# binding only describes this V8 release's C++ API surface, so reuse the
# Linux release binding while the windows-gnullvm archive build is still
# experimental.
actual = ":src_binding_release_x86_64_unknown_linux_gnu_150_4_0_release",
actual = ":src_binding_release_x86_64_unknown_linux_gnu_152_2_0_release",
)
alias(
name = "src_binding_release_aarch64_pc_windows_gnullvm_150_4_0_release",
actual = ":src_binding_release_aarch64_unknown_linux_gnu_150_4_0_release",
name = "src_binding_release_aarch64_pc_windows_gnullvm_152_2_0_release",
actual = ":src_binding_release_aarch64_unknown_linux_gnu_152_2_0_release",
)
# Published files contain both pointer compression and the in-process sandbox.
@@ -90,59 +90,65 @@ alias(
alias(
name = "rusty_v8_prebuilt_archive_for_target",
actual = select({
"@rules_rs//rs/platforms/config:aarch64-apple-darwin": "@rusty_v8_150_4_0_aarch64_apple_darwin_archive//file",
"@rules_rs//rs/platforms/config:aarch64-unknown-linux-gnu": ":v8_150_4_0_aarch64_unknown_linux_gnu_prebuilt",
"@rules_rs//rs/platforms/config:x86_64-apple-darwin": "@rusty_v8_150_4_0_x86_64_apple_darwin_archive//file",
"@rules_rs//rs/platforms/config:x86_64-unknown-linux-gnu": ":v8_150_4_0_x86_64_unknown_linux_gnu_prebuilt",
":platform_aarch64_unknown_linux_musl": ":rusty_v8_source_archive_for_target",
":platform_x86_64_unknown_linux_musl": ":rusty_v8_source_archive_for_target",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-msvc": ":v8_152_2_0_aarch64_pc_windows_msvc",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-msvc": ":v8_152_2_0_x86_64_pc_windows_msvc",
"@rules_rs//rs/platforms/config:aarch64-apple-darwin": "@rusty_v8_152_2_0_aarch64_apple_darwin_archive//file",
"@rules_rs//rs/platforms/config:aarch64-unknown-linux-gnu": ":v8_152_2_0_aarch64_unknown_linux_gnu_prebuilt",
"@rules_rs//rs/platforms/config:x86_64-apple-darwin": "@rusty_v8_152_2_0_x86_64_apple_darwin_archive//file",
"@rules_rs//rs/platforms/config:x86_64-unknown-linux-gnu": ":v8_152_2_0_x86_64_unknown_linux_gnu_prebuilt",
":platform_aarch64_unknown_linux_musl": ":v8_152_2_0_aarch64_unknown_linux_musl_prebuilt",
":platform_x86_64_unknown_linux_musl": ":v8_152_2_0_x86_64_unknown_linux_musl_prebuilt",
"//conditions:default": ":rusty_v8_source_archive_for_target",
}),
)
# A GNU Codex release archive carries Chromium's namespaced libc++ runtime.
# A Linux Codex release archive carries Chromium's namespaced libc++ runtime.
# Bazel also links its own libc++. Both keep their exception classes in std::,
# so prefer the toolchain definitions of just those shared ABI entry points.
# Inputs remain checksum-verified and immutable; only the Bazel output changes.
[
genrule(
name = "v8_150_4_0_%s_unknown_linux_gnu_prebuilt" % arch,
name = "v8_152_2_0_%s_unknown_linux_%s_prebuilt" % (arch, libc),
srcs = [
":gnu_libcxx_shared_exception_symbols.txt",
"@rusty_v8_150_4_0_%s_unknown_linux_gnu_archive//file" % arch,
"@rusty_v8_152_2_0_%s_unknown_linux_%s_archive//file" % (arch, libc),
],
outs = ["libv8_150_4_0_%s_unknown_linux_gnu_prebuilt.a" % arch],
outs = ["libv8_152_2_0_%s_unknown_linux_%s_prebuilt.a" % (arch, libc)],
cmd = """
gzip -dc "$(location @rusty_v8_150_4_0_%s_unknown_linux_gnu_archive//file)" > "$@.unadjusted"
gzip -dc "$(location @rusty_v8_152_2_0_%s_unknown_linux_%s_archive//file)" > "$@.unadjusted"
$(location @llvm//tools:llvm-objcopy) \
--weaken-symbols="$(location :gnu_libcxx_shared_exception_symbols.txt)" \
"$@.unadjusted" "$@"
rm "$@.unadjusted"
""" % arch,
""" % (arch, libc),
tools = ["@llvm//tools:llvm-objcopy"],
)
for arch in [
"aarch64",
"x86_64",
]
for libc in [
"gnu",
"musl",
]
]
alias(
name = "rusty_v8_source_archive_for_target",
actual = select({
"@rules_rs//rs/platforms/config:aarch64-apple-darwin": ":v8_150_4_0_aarch64_apple_darwin_bazel",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-gnullvm": ":v8_150_4_0_aarch64_pc_windows_gnullvm",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-msvc": ":v8_150_4_0_aarch64_pc_windows_msvc",
"@rules_rs//rs/platforms/config:aarch64-unknown-linux-gnu": ":v8_150_4_0_aarch64_unknown_linux_gnu_bazel",
"@rules_rs//rs/platforms/config:aarch64-apple-darwin": ":v8_152_2_0_aarch64_apple_darwin_bazel",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-gnullvm": ":v8_152_2_0_aarch64_pc_windows_gnullvm",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-msvc": ":v8_152_2_0_aarch64_pc_windows_msvc",
"@rules_rs//rs/platforms/config:aarch64-unknown-linux-gnu": ":v8_152_2_0_aarch64_unknown_linux_gnu_bazel",
# Rust's compiler-builtins archive does not supply V8's __clear_cache.
# Use the merged archive containing the ARM64 compiler-rt builtins.
":platform_aarch64_unknown_linux_musl": ":v8_150_4_0_aarch64_unknown_linux_musl_release",
"@rules_rs//rs/platforms/config:x86_64-apple-darwin": ":v8_150_4_0_x86_64_apple_darwin_bazel",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-gnullvm": ":v8_150_4_0_x86_64_pc_windows_gnullvm",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-msvc": ":v8_150_4_0_x86_64_pc_windows_msvc",
"@rules_rs//rs/platforms/config:x86_64-unknown-linux-gnu": ":v8_150_4_0_x86_64_unknown_linux_gnu_bazel",
":platform_x86_64_unknown_linux_musl": ":v8_150_4_0_x86_64_unknown_linux_musl_release",
"//conditions:default": ":v8_150_4_0_x86_64_unknown_linux_gnu_bazel",
":platform_aarch64_unknown_linux_musl": ":v8_152_2_0_aarch64_unknown_linux_musl_release",
"@rules_rs//rs/platforms/config:x86_64-apple-darwin": ":v8_152_2_0_x86_64_apple_darwin_bazel",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-gnullvm": ":v8_152_2_0_x86_64_pc_windows_gnullvm",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-msvc": ":v8_152_2_0_x86_64_pc_windows_msvc",
"@rules_rs//rs/platforms/config:x86_64-unknown-linux-gnu": ":v8_152_2_0_x86_64_unknown_linux_gnu_bazel",
":platform_x86_64_unknown_linux_musl": ":v8_152_2_0_x86_64_unknown_linux_musl_release",
"//conditions:default": ":v8_152_2_0_x86_64_unknown_linux_gnu_bazel",
}),
)
@@ -157,12 +163,14 @@ alias(
alias(
name = "rusty_v8_prebuilt_binding_for_target",
actual = select({
"@rules_rs//rs/platforms/config:aarch64-apple-darwin": "@rusty_v8_150_4_0_aarch64_apple_darwin_binding//file",
"@rules_rs//rs/platforms/config:aarch64-unknown-linux-gnu": "@rusty_v8_150_4_0_aarch64_unknown_linux_gnu_binding//file",
"@rules_rs//rs/platforms/config:x86_64-apple-darwin": "@rusty_v8_150_4_0_x86_64_apple_darwin_binding//file",
"@rules_rs//rs/platforms/config:x86_64-unknown-linux-gnu": "@rusty_v8_150_4_0_x86_64_unknown_linux_gnu_binding//file",
":platform_aarch64_unknown_linux_musl": ":rusty_v8_source_binding_for_target",
":platform_x86_64_unknown_linux_musl": ":rusty_v8_source_binding_for_target",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-msvc": "@rusty_v8_152_2_0_aarch64_pc_windows_msvc_binding//file",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-msvc": "@rusty_v8_152_2_0_x86_64_pc_windows_msvc_binding//file",
"@rules_rs//rs/platforms/config:aarch64-apple-darwin": "@rusty_v8_152_2_0_aarch64_apple_darwin_binding//file",
"@rules_rs//rs/platforms/config:aarch64-unknown-linux-gnu": "@rusty_v8_152_2_0_aarch64_unknown_linux_gnu_binding//file",
"@rules_rs//rs/platforms/config:x86_64-apple-darwin": "@rusty_v8_152_2_0_x86_64_apple_darwin_binding//file",
"@rules_rs//rs/platforms/config:x86_64-unknown-linux-gnu": "@rusty_v8_152_2_0_x86_64_unknown_linux_gnu_binding//file",
":platform_aarch64_unknown_linux_musl": "@rusty_v8_152_2_0_aarch64_unknown_linux_musl_binding//file",
":platform_x86_64_unknown_linux_musl": "@rusty_v8_152_2_0_x86_64_unknown_linux_musl_binding//file",
"//conditions:default": ":rusty_v8_source_binding_for_target",
}),
)
@@ -170,17 +178,17 @@ alias(
alias(
name = "rusty_v8_source_binding_for_target",
actual = select({
"@rules_rs//rs/platforms/config:aarch64-apple-darwin": ":src_binding_release_aarch64_apple_darwin_150_4_0_release",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-gnullvm": ":src_binding_release_aarch64_pc_windows_gnullvm_150_4_0_release",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-msvc": ":src_binding_release_aarch64_pc_windows_msvc_150_4_0_release",
"@rules_rs//rs/platforms/config:aarch64-unknown-linux-gnu": ":src_binding_release_aarch64_unknown_linux_gnu_150_4_0_release",
":platform_aarch64_unknown_linux_musl": ":src_binding_release_aarch64_unknown_linux_musl_150_4_0_release",
"@rules_rs//rs/platforms/config:x86_64-apple-darwin": ":src_binding_release_x86_64_apple_darwin_150_4_0_release",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-gnullvm": ":src_binding_release_x86_64_pc_windows_gnullvm_150_4_0_release",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-msvc": ":src_binding_release_x86_64_pc_windows_msvc_150_4_0_release",
"@rules_rs//rs/platforms/config:x86_64-unknown-linux-gnu": ":src_binding_release_x86_64_unknown_linux_gnu_150_4_0_release",
":platform_x86_64_unknown_linux_musl": ":src_binding_release_x86_64_unknown_linux_musl_150_4_0_release",
"//conditions:default": ":src_binding_release_x86_64_unknown_linux_gnu_150_4_0_release",
"@rules_rs//rs/platforms/config:aarch64-apple-darwin": ":src_binding_release_aarch64_apple_darwin_152_2_0_release",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-gnullvm": ":src_binding_release_aarch64_pc_windows_gnullvm_152_2_0_release",
"@rules_rs//rs/platforms/config:aarch64-pc-windows-msvc": ":src_binding_release_aarch64_pc_windows_msvc_152_2_0_release",
"@rules_rs//rs/platforms/config:aarch64-unknown-linux-gnu": ":src_binding_release_aarch64_unknown_linux_gnu_152_2_0_release",
":platform_aarch64_unknown_linux_musl": ":src_binding_release_aarch64_unknown_linux_musl_152_2_0_release",
"@rules_rs//rs/platforms/config:x86_64-apple-darwin": ":src_binding_release_x86_64_apple_darwin_152_2_0_release",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-gnullvm": ":src_binding_release_x86_64_pc_windows_gnullvm_152_2_0_release",
"@rules_rs//rs/platforms/config:x86_64-pc-windows-msvc": ":src_binding_release_x86_64_pc_windows_msvc_152_2_0_release",
"@rules_rs//rs/platforms/config:x86_64-unknown-linux-gnu": ":src_binding_release_x86_64_unknown_linux_gnu_152_2_0_release",
":platform_x86_64_unknown_linux_musl": ":src_binding_release_x86_64_unknown_linux_musl_152_2_0_release",
"//conditions:default": ":src_binding_release_x86_64_unknown_linux_gnu_152_2_0_release",
}),
)
@@ -231,51 +239,51 @@ cc_library(
)
genrule(
name = "binding_cc_150_4_0",
srcs = ["@v8_crate_150_4_0//:binding_cc"],
outs = ["binding_150_4_0.cc"],
name = "binding_cc_152_2_0",
srcs = ["@v8_crate_152_2_0//:binding_cc"],
outs = ["binding_152_2_0.cc"],
cmd = " ".join([
"sed",
"-e '/#include \"v8\\/src\\/flags\\/flags.h\"/d'",
"-e 's|\"v8/src/libplatform/default-platform.h\"|\"src/libplatform/default-platform.h\"|'",
"-e 's|#include \"support.h\"|#include \"support_150_4_0.h\"|'",
"-e 's|#include \"support.h\"|#include \"support_152_2_0.h\"|'",
"-e 's| namespace i = v8::internal;| (void)usage;|'",
"-e '/using HelpOptions = i::FlagList::HelpOptions;/d'",
"-e '/HelpOptions help_options = HelpOptions(HelpOptions::kExit, usage);/d'",
"-e 's| i::FlagList::SetFlagsFromCommandLine(argc, argv, true, help_options);| v8::V8::SetFlagsFromCommandLine(argc, argv, true);|'",
"$(location @v8_crate_150_4_0//:binding_cc)",
"$(location @v8_crate_152_2_0//:binding_cc)",
">",
'"$@"',
]),
)
genrule(
name = "crdtp_binding_cc_150_4_0",
srcs = ["@v8_crate_150_4_0//:crdtp_binding_cc"],
outs = ["crdtp_binding_150_4_0.cc"],
name = "crdtp_binding_cc_152_2_0",
srcs = ["@v8_crate_152_2_0//:crdtp_binding_cc"],
outs = ["crdtp_binding_152_2_0.cc"],
cmd = " ".join([
"sed",
"-e 's|#include \"support.h\"|#include \"support_150_4_0.h\"|'",
"-e 's|#include \"support.h\"|#include \"support_152_2_0.h\"|'",
"-e 's|\"v8/third_party/inspector_protocol/|\"third_party/inspector_protocol/|g'",
"$(location @v8_crate_150_4_0//:crdtp_binding_cc)",
"$(location @v8_crate_152_2_0//:crdtp_binding_cc)",
">",
'"$@"',
]),
)
copy_file(
name = "support_h_150_4_0",
src = "@v8_crate_150_4_0//:support_h",
out = "support_150_4_0.h",
name = "support_h_152_2_0",
src = "@v8_crate_152_2_0//:support_h",
out = "support_152_2_0.h",
)
cc_library(
name = "v8_150_4_0_binding",
name = "v8_152_2_0_binding",
srcs = [
":binding_cc_150_4_0",
":crdtp_binding_cc_150_4_0",
":binding_cc_152_2_0",
":crdtp_binding_cc_152_2_0",
],
hdrs = [":support_h_150_4_0"],
hdrs = [":support_h_152_2_0"],
copts = V8_COPTS + V8_CUSTOM_LIBCXX_COPTS,
deps = [
"@v8//:core_lib_icu",
@@ -290,49 +298,49 @@ cc_library(
)
cc_static_library(
name = "v8_150_4_0_aarch64_apple_darwin_bazel",
name = "v8_152_2_0_aarch64_apple_darwin_bazel",
features = V8_STATIC_LIBRARY_FEATURES,
deps = [
":rusty_v8_custom_libcxx_runtime",
":v8_150_4_0_binding",
":v8_152_2_0_binding",
],
)
cc_static_library(
name = "v8_150_4_0_aarch64_unknown_linux_gnu_bazel",
name = "v8_152_2_0_aarch64_unknown_linux_gnu_bazel",
features = V8_STATIC_LIBRARY_FEATURES,
deps = [
":rusty_v8_custom_libcxx_runtime",
":v8_150_4_0_binding",
":v8_152_2_0_binding",
],
)
cc_static_library(
name = "v8_150_4_0_aarch64_pc_windows_gnullvm_bazel",
name = "v8_152_2_0_aarch64_pc_windows_gnullvm_bazel",
features = V8_STATIC_LIBRARY_FEATURES,
deps = [":v8_150_4_0_binding"],
deps = [":v8_152_2_0_binding"],
)
cc_static_library(
name = "v8_150_4_0_aarch64_unknown_linux_musl_release_base",
name = "v8_152_2_0_aarch64_unknown_linux_musl_release_base",
features = V8_STATIC_LIBRARY_FEATURES,
deps = [
":rusty_v8_custom_libcxx_runtime",
":v8_150_4_0_binding",
":v8_152_2_0_binding",
],
)
genrule(
name = "v8_150_4_0_aarch64_unknown_linux_musl_release",
name = "v8_152_2_0_aarch64_unknown_linux_musl_release",
srcs = [
":v8_150_4_0_aarch64_unknown_linux_musl_release_base",
":v8_152_2_0_aarch64_unknown_linux_musl_release_base",
"@llvm//runtimes/compiler-rt:clang_rt.builtins.static",
],
outs = ["libv8_150_4_0_aarch64_unknown_linux_musl.a"],
outs = ["libv8_152_2_0_aarch64_unknown_linux_musl.a"],
cmd = """
cat > "$(@D)/merge.mri" <<'EOF'
create $@
addlib $(location :v8_150_4_0_aarch64_unknown_linux_musl_release_base)
addlib $(location :v8_152_2_0_aarch64_unknown_linux_musl_release_base)
addlib $(location @llvm//runtimes/compiler-rt:clang_rt.builtins.static)
save
end
@@ -347,186 +355,186 @@ EOF
)
cc_static_library(
name = "v8_150_4_0_x86_64_apple_darwin_bazel",
name = "v8_152_2_0_x86_64_apple_darwin_bazel",
features = V8_STATIC_LIBRARY_FEATURES,
deps = [
":rusty_v8_custom_libcxx_runtime",
":v8_150_4_0_binding",
":v8_152_2_0_binding",
],
)
cc_static_library(
name = "v8_150_4_0_x86_64_unknown_linux_gnu_bazel",
name = "v8_152_2_0_x86_64_unknown_linux_gnu_bazel",
features = V8_STATIC_LIBRARY_FEATURES,
deps = [
":rusty_v8_custom_libcxx_runtime",
":v8_150_4_0_binding",
":v8_152_2_0_binding",
],
)
cc_static_library(
name = "v8_150_4_0_x86_64_pc_windows_gnullvm_bazel",
name = "v8_152_2_0_x86_64_pc_windows_gnullvm_bazel",
features = V8_STATIC_LIBRARY_FEATURES,
deps = [":v8_150_4_0_binding"],
deps = [":v8_152_2_0_binding"],
)
cc_static_library(
name = "v8_150_4_0_x86_64_unknown_linux_musl_release",
name = "v8_152_2_0_x86_64_unknown_linux_musl_release",
features = V8_STATIC_LIBRARY_FEATURES,
deps = [
":rusty_v8_custom_libcxx_runtime",
":v8_150_4_0_binding",
":v8_152_2_0_binding",
],
)
filegroup(
name = "src_binding_release_aarch64_apple_darwin_150_4_0_release",
srcs = ["@v8_crate_150_4_0//:src_binding_release_aarch64_apple_darwin"],
name = "src_binding_release_aarch64_apple_darwin_152_2_0_release",
srcs = ["@v8_crate_152_2_0//:src_binding_release_aarch64_apple_darwin"],
)
filegroup(
name = "src_binding_release_x86_64_apple_darwin_150_4_0_release",
srcs = ["@v8_crate_150_4_0//:src_binding_release_x86_64_apple_darwin"],
name = "src_binding_release_x86_64_apple_darwin_152_2_0_release",
srcs = ["@v8_crate_152_2_0//:src_binding_release_x86_64_apple_darwin"],
)
filegroup(
name = "src_binding_release_aarch64_unknown_linux_gnu_150_4_0_release",
srcs = ["@v8_crate_150_4_0//:src_binding_release_aarch64_unknown_linux_gnu"],
name = "src_binding_release_aarch64_unknown_linux_gnu_152_2_0_release",
srcs = ["@v8_crate_152_2_0//:src_binding_release_aarch64_unknown_linux_gnu"],
)
filegroup(
name = "src_binding_release_x86_64_unknown_linux_gnu_150_4_0_release",
srcs = ["@v8_crate_150_4_0//:src_binding_release_x86_64_unknown_linux_gnu"],
name = "src_binding_release_x86_64_unknown_linux_gnu_152_2_0_release",
srcs = ["@v8_crate_152_2_0//:src_binding_release_x86_64_unknown_linux_gnu"],
)
filegroup(
name = "src_binding_release_aarch64_unknown_linux_musl_150_4_0_release",
srcs = ["@v8_crate_150_4_0//:src_binding_release_aarch64_unknown_linux_gnu"],
name = "src_binding_release_aarch64_unknown_linux_musl_152_2_0_release",
srcs = ["@v8_crate_152_2_0//:src_binding_release_aarch64_unknown_linux_gnu"],
)
filegroup(
name = "src_binding_release_x86_64_unknown_linux_musl_150_4_0_release",
srcs = ["@v8_crate_150_4_0//:src_binding_release_x86_64_unknown_linux_gnu"],
name = "src_binding_release_x86_64_unknown_linux_musl_152_2_0_release",
srcs = ["@v8_crate_152_2_0//:src_binding_release_x86_64_unknown_linux_gnu"],
)
filegroup(
name = "src_binding_release_aarch64_pc_windows_msvc_150_4_0_release",
srcs = ["@v8_crate_150_4_0//:src_binding_release_aarch64_pc_windows_msvc"],
alias(
name = "src_binding_release_aarch64_pc_windows_msvc_152_2_0_release",
actual = "@rusty_v8_152_2_0_aarch64_pc_windows_msvc_binding//file",
)
filegroup(
name = "src_binding_release_x86_64_pc_windows_msvc_150_4_0_release",
srcs = ["@v8_crate_150_4_0//:src_binding_release_x86_64_pc_windows_msvc"],
alias(
name = "src_binding_release_x86_64_pc_windows_msvc_152_2_0_release",
actual = "@rusty_v8_152_2_0_x86_64_pc_windows_msvc_binding//file",
)
filegroup(
name = "rusty_v8_release_pair_x86_64_apple_darwin",
srcs = [
":src_binding_release_x86_64_apple_darwin_150_4_0_release",
":v8_150_4_0_x86_64_apple_darwin_bazel",
":src_binding_release_x86_64_apple_darwin_152_2_0_release",
":v8_152_2_0_x86_64_apple_darwin_bazel",
],
)
filegroup(
name = "rusty_v8_release_pair_aarch64_apple_darwin",
srcs = [
":src_binding_release_aarch64_apple_darwin_150_4_0_release",
":v8_150_4_0_aarch64_apple_darwin_bazel",
":src_binding_release_aarch64_apple_darwin_152_2_0_release",
":v8_152_2_0_aarch64_apple_darwin_bazel",
],
)
filegroup(
name = "rusty_v8_release_pair_x86_64_unknown_linux_gnu",
srcs = [
":src_binding_release_x86_64_unknown_linux_gnu_150_4_0_release",
":v8_150_4_0_x86_64_unknown_linux_gnu_bazel",
":src_binding_release_x86_64_unknown_linux_gnu_152_2_0_release",
":v8_152_2_0_x86_64_unknown_linux_gnu_bazel",
],
)
filegroup(
name = "rusty_v8_release_pair_aarch64_unknown_linux_gnu",
srcs = [
":src_binding_release_aarch64_unknown_linux_gnu_150_4_0_release",
":v8_150_4_0_aarch64_unknown_linux_gnu_bazel",
":src_binding_release_aarch64_unknown_linux_gnu_152_2_0_release",
":v8_152_2_0_aarch64_unknown_linux_gnu_bazel",
],
)
filegroup(
name = "rusty_v8_release_pair_x86_64_unknown_linux_musl",
srcs = [
":src_binding_release_x86_64_unknown_linux_musl_150_4_0_release",
":v8_150_4_0_x86_64_unknown_linux_musl_release",
":src_binding_release_x86_64_unknown_linux_musl_152_2_0_release",
":v8_152_2_0_x86_64_unknown_linux_musl_release",
],
)
filegroup(
name = "rusty_v8_release_pair_aarch64_unknown_linux_musl",
srcs = [
":src_binding_release_aarch64_unknown_linux_musl_150_4_0_release",
":v8_150_4_0_aarch64_unknown_linux_musl_release",
":src_binding_release_aarch64_unknown_linux_musl_152_2_0_release",
":v8_152_2_0_aarch64_unknown_linux_musl_release",
],
)
filegroup(
name = "rusty_v8_release_pair_x86_64_pc_windows_msvc",
srcs = [
":src_binding_release_x86_64_pc_windows_msvc_150_4_0_release",
":v8_150_4_0_x86_64_pc_windows_msvc",
":src_binding_release_x86_64_pc_windows_msvc_152_2_0_release",
":v8_152_2_0_x86_64_pc_windows_msvc",
],
)
filegroup(
name = "rusty_v8_release_pair_aarch64_pc_windows_msvc",
srcs = [
":src_binding_release_aarch64_pc_windows_msvc_150_4_0_release",
":v8_150_4_0_aarch64_pc_windows_msvc",
":src_binding_release_aarch64_pc_windows_msvc_152_2_0_release",
":v8_152_2_0_aarch64_pc_windows_msvc",
],
)
filegroup(
name = "rusty_v8_sandbox_release_pair_x86_64_apple_darwin",
srcs = [
":src_binding_release_x86_64_apple_darwin_150_4_0_release",
":v8_150_4_0_x86_64_apple_darwin_bazel",
":src_binding_release_x86_64_apple_darwin_152_2_0_release",
":v8_152_2_0_x86_64_apple_darwin_bazel",
],
)
filegroup(
name = "rusty_v8_sandbox_release_pair_aarch64_apple_darwin",
srcs = [
":src_binding_release_aarch64_apple_darwin_150_4_0_release",
":v8_150_4_0_aarch64_apple_darwin_bazel",
":src_binding_release_aarch64_apple_darwin_152_2_0_release",
":v8_152_2_0_aarch64_apple_darwin_bazel",
],
)
filegroup(
name = "rusty_v8_sandbox_release_pair_x86_64_unknown_linux_gnu",
srcs = [
":src_binding_release_x86_64_unknown_linux_gnu_150_4_0_release",
":v8_150_4_0_x86_64_unknown_linux_gnu_bazel",
":src_binding_release_x86_64_unknown_linux_gnu_152_2_0_release",
":v8_152_2_0_x86_64_unknown_linux_gnu_bazel",
],
)
filegroup(
name = "rusty_v8_sandbox_release_pair_aarch64_unknown_linux_gnu",
srcs = [
":src_binding_release_aarch64_unknown_linux_gnu_150_4_0_release",
":v8_150_4_0_aarch64_unknown_linux_gnu_bazel",
":src_binding_release_aarch64_unknown_linux_gnu_152_2_0_release",
":v8_152_2_0_aarch64_unknown_linux_gnu_bazel",
],
)
filegroup(
name = "rusty_v8_sandbox_release_pair_x86_64_unknown_linux_musl",
srcs = [
":src_binding_release_x86_64_unknown_linux_musl_150_4_0_release",
":v8_150_4_0_x86_64_unknown_linux_musl_release",
":src_binding_release_x86_64_unknown_linux_musl_152_2_0_release",
":v8_152_2_0_x86_64_unknown_linux_musl_release",
],
)
filegroup(
name = "rusty_v8_sandbox_release_pair_aarch64_unknown_linux_musl",
srcs = [
":src_binding_release_aarch64_unknown_linux_musl_150_4_0_release",
":v8_150_4_0_aarch64_unknown_linux_musl_release",
":src_binding_release_aarch64_unknown_linux_musl_152_2_0_release",
":v8_152_2_0_aarch64_unknown_linux_musl_release",
],
)
+11 -11
View File
@@ -3,10 +3,10 @@
This directory wires the `v8` crate to exact-version Bazel inputs.
Bazel consumer builds use:
- Codex-published sandbox archive/binding pairs on Darwin and GNU Linux (x64
and arm64), with checksums pinned from the trusted release manifests
- the existing Codex-published Windows MSVC archives
- source-built V8 archives on musl Linux and Windows GNU
- Codex-published sandbox archive/binding pairs on Darwin, GNU/musl Linux,
and Windows MSVC (x64 and arm64), with checksums pinned from the trusted
release manifests
- source-built V8 archives on Windows GNU
Local Cargo builds still use upstream prebuilt `rusty_v8` archives by default.
Selected Cargo CI, release, and package builds override
@@ -16,7 +16,7 @@ for its consumers. All Bazel compilation modes use the same published V8
release archive on supported platforms.
The Bazel `v8` crate feature selection enables V8's in-process sandbox.
Darwin/GNU consumers select prebuilts only when both the V8 sandbox and pointer
Darwin/Linux consumers select prebuilts only when both the V8 sandbox and pointer
compression settings match the published artifact. For source instrumentation
or custom V8 C++ settings, use `--//:rusty_v8_from_source=true`; the archive
and binding then both come from the source path. The published release archive
@@ -24,8 +24,8 @@ cannot incorporate local V8 C++ flags or native debug/sanitizer settings.
Current pinned versions:
- Rust crate: `v8 = =150.4.0`
- Embedded upstream V8 source for Bazel-produced release builds: `15.0.245.2`
- Rust crate: `v8 = =152.2.0`
- Embedded upstream V8 source for Bazel-produced release builds: `15.2.124.1`
## Updating to a new `v8` release
@@ -50,7 +50,7 @@ python3 .github/scripts/rusty_v8_bazel.py update-module-bazel
python3 .github/scripts/rusty_v8_bazel.py check-module-bazel
```
For the Darwin/GNU pairs, verify each published
For all eight published pairs, verify each published
`rusty_v8_ptrcomp_sandbox_release_<target>.sha256` against the committed
`rusty_v8_<version>_release_manifests.sha256` first. Copy the verified archive
and binding checksums into `rusty_v8_<version>.sha256`, then run these
@@ -104,14 +104,14 @@ from upstream `rusty_v8` source. Those ABI-specific outputs cannot be produced
by Codex's Bazel Windows GNU toolchain.
The Bazel graph pins the same libc++, libc++abi, and llvm-libc source revisions
used by `rusty_v8 v150.4.0`, compiles published artifact targets with
used by `rusty_v8 v152.2.0`, compiles published artifact targets with
`--config=rusty-v8-upstream-libcxx`, and folds the matching runtime objects into
the final static archive so consumers can link it with the `v8` crate's default
`use_custom_libcxx` feature. The config keeps the object files and the bundled
runtime on Chromium's `std::__Cr` ABI namespace instead of mixing those objects
with the toolchain libc++ default namespace. Bazel consumers use these
published archives for supported Darwin/GNU platforms, as do Cargo release and
package builds. On GNU Linux, Bazel decompresses to a private output and weakens
published archives for supported Darwin/Linux platforms, as do Cargo release and
package builds. On Linux, Bazel decompresses to a private output and weakens
the ten shared `std::logic_error` and `std::runtime_error` constructors and
assignment entry points listed in `gnu_libcxx_shared_exception_symbols.txt`.
libc++ keeps these exception functions in `std::` across inline ABI namespaces;
+1 -1
View File
@@ -111,7 +111,7 @@ cc_runtime_stage0_library(
"//conditions:default": ["-fPIC"],
}),
defines = [
"CR_LIBCXX_REVISION=5abc7f839700f0f17338434e1c1c6a8c87c00c11",
"CR_LIBCXX_REVISION=b16984ce99c702355a5b2b4c52574e82cec41fb9",
"LIBCXX_BUILDING_LIBCXXABI",
"LIBC_NAMESPACE=__llvm_libc_cr",
"_LIBCPP_BUILDING_LIBRARY",
-10
View File
@@ -1,10 +0,0 @@
54722842af36b74248c403ff531254efac6ff65d281198bab0c6350fc1188ad4 rusty_v8_release_aarch64-pc-windows-msvc.lib.gz
732ec5da4243aa166799780c8519a5eea6f32f6e47657a323342794dc3c239d6 rusty_v8_release_x86_64-pc-windows-msvc.lib.gz
00adbb48798848c77550441c68673a5e8529b8e1b73eabcdee232cb39b40f4a1 librusty_v8_ptrcomp_sandbox_release_aarch64-apple-darwin.a.gz
ca5adf0cf89c9a70ad460ae73648b2fe89b74aa113b3cb7f757b6a02b758394f src_binding_ptrcomp_sandbox_release_aarch64-apple-darwin.rs
d1517eed405468537029b005d5fe997ec74d5c8d351f916b3a6df20b7d2811ba librusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.a.gz
7727826ae479bdb645e807239fb12d1f8e2e23de7a6cf16f5ee592690d1d8506 src_binding_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.rs
e0d9bb64e8b3a034c2930c83972f3f35760211148342fa0407b38250ef330856 librusty_v8_ptrcomp_sandbox_release_x86_64-apple-darwin.a.gz
ca5adf0cf89c9a70ad460ae73648b2fe89b74aa113b3cb7f757b6a02b758394f src_binding_ptrcomp_sandbox_release_x86_64-apple-darwin.rs
a35c75d1f26e6a983885a45b33490a4ebe54f05050568b32b89cfb421b30b583 librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.a.gz
7727826ae479bdb645e807239fb12d1f8e2e23de7a6cf16f5ee592690d1d8506 src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.rs
+16
View File
@@ -0,0 +1,16 @@
feab9ae0384bebaa99c1d000654462c9d42123d587185c7876aaeef7d76ff749 librusty_v8_ptrcomp_sandbox_release_aarch64-apple-darwin.a.gz
b9d5652ebca515eb2bf4c2ee4a6551b2567117b5aa720f430d2032616dd7e3b5 src_binding_ptrcomp_sandbox_release_aarch64-apple-darwin.rs
daf327876f7753a94b3b05d6d64776258def3ae67503ac75db9c35c6deaa28a5 rusty_v8_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.lib.gz
572ed16ff09bb7944f4b35c659ff62dcd3faf43a0351e3f94f011e01b2f92a62 src_binding_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.rs
1054464a623006cdf5e25ae20877002bf3edb9a2c2f3e64f44a8714742b15e87 librusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.a.gz
3e4d5fecdbe0f98a6017e69d7ca82519a77fb032c5eb5e4cdbecdd3e2ec519d5 src_binding_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.rs
1a60f36a3dd8778802e6980668c4d65a3c7305d85a5d2debf466d9aa0daadd75 librusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-musl.a.gz
3e4d5fecdbe0f98a6017e69d7ca82519a77fb032c5eb5e4cdbecdd3e2ec519d5 src_binding_ptrcomp_sandbox_release_aarch64-unknown-linux-musl.rs
bfe19d9b633b61d99780ece89690427fef4b985c6b4196536eaf94571166fc24 librusty_v8_ptrcomp_sandbox_release_x86_64-apple-darwin.a.gz
b9d5652ebca515eb2bf4c2ee4a6551b2567117b5aa720f430d2032616dd7e3b5 src_binding_ptrcomp_sandbox_release_x86_64-apple-darwin.rs
cd829415695b30ad61b306b23a381e11276f14bb0b46815ac5ed8b96711d002d rusty_v8_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.lib.gz
572ed16ff09bb7944f4b35c659ff62dcd3faf43a0351e3f94f011e01b2f92a62 src_binding_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.rs
b3b490f2aa809eda7f6ac727f851fb00ce8355be72827577cfaac28c7137dbcd librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.a.gz
3e4d5fecdbe0f98a6017e69d7ca82519a77fb032c5eb5e4cdbecdd3e2ec519d5 src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.rs
2f2679773a12576dc6b89b0f7d70e8190e5aea8a57f8f6364efaffdd1497d0e7 librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-musl.a.gz
3e4d5fecdbe0f98a6017e69d7ca82519a77fb032c5eb5e4cdbecdd3e2ec519d5 src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-musl.rs
@@ -1,8 +1,8 @@
4079b4b84a8b4fcf34a2a5ca7f080dffd0e1b53404b0032087b821e247febb43 rusty_v8_ptrcomp_sandbox_release_aarch64-apple-darwin.sha256
9d153e6534d50961329132a64dd7f7cd18ba96501a4a43c1a6d8bfaeec454b2b rusty_v8_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.sha256
4ee879a8bc7b0f482cac891415e22300dff4429a28897fddac88bb296ce07920 rusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.sha256
9c40a51e4d5fcedaec527757b8660115b2a10ca3e2ddacadc3075924ad005b66 rusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-musl.sha256
d85c7ae0cf437a4415376c4b5b7daba50b0dcbe30f52612d21df8ce52eb8ada0 rusty_v8_ptrcomp_sandbox_release_x86_64-apple-darwin.sha256
a4d6221dddb4b5724b23411eaac47caf6095489fbf9d126f65b33cef96a0a8ef rusty_v8_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.sha256
6774b42c9424c098c72a805c08d4e94be17c591cf02b1dc2633060255a8a61be rusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.sha256
9bd5beb3a7bfa4f95bc887476ec3e4d564254c1815efe63296740e09bcc8665b rusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-musl.sha256
5cebc5830127b460ae8af23004430fd70b535bb22d599d68d024b60df08400d8 rusty_v8_ptrcomp_sandbox_release_aarch64-apple-darwin.sha256
a4c895148240270c8b685bf0b86ca6257533c3ecad8833560e462b0854cb3bfc rusty_v8_ptrcomp_sandbox_release_aarch64-pc-windows-msvc.sha256
94195fe3a70a6043474afabd145c0bbe322f409e95a52c745d64c9f929f80a22 rusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-gnu.sha256
c35b823c23c32d349029467e8fa75cc492146a658dc5bd37597d93b125cc64e8 rusty_v8_ptrcomp_sandbox_release_aarch64-unknown-linux-musl.sha256
f9259abda68c50bfd71d856ece97d272832ac9c18e91fdc892fa9625a003b7bc rusty_v8_ptrcomp_sandbox_release_x86_64-apple-darwin.sha256
e16bf2d7bc4b64a96a89e87048d61b9c466040e4c82ae64cfe9f7f2052ef3179 rusty_v8_ptrcomp_sandbox_release_x86_64-pc-windows-msvc.sha256
1ec730635970ab1c0e8f4764ea113ad29d69d7f8d4c2ae69f3d766434a759350 rusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.sha256
12acf8747729db642a9d49d3448174471fb07cf47e01a6238222e2d9299de72f rusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-musl.sha256