Go to file
Dominik Inführ 01eb8ff9d0 [heap] Support --expose-gc with shared heap
--shared-string-table assumes that all old strings are in the shared
heap. However, when also using --expose-gc we create an external string
for the GC function name. So far external strings are always allocated
in the local old space though, which results in a heap verification
error. This CL creates external string in the shared old heap with
--shared-string-table enabled.

In order to pass all the tests this CL also has to:

* Stop marking into the shared heap for VisitEmbeddedPointer and
  VisitCodePointer.
* Relax DCHECK in String::GetFlatContent: We cannot check the thread
  id for any shared string. Even if that string isn't really shared atm.

Bug: v8:11708
Change-Id: I51fec5ba038d035be5fe5e1277ef9286efc8dc2a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3447371
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79022}
2022-02-10 07:43:27 +00:00
.github
bazel [bazel] Don't override --@v8//bazel/config:v8_target_cpu flag. 2022-02-08 11:25:53 +00:00
build_overrides
custom_deps
docs
gni cppgc: young-gen: Prepare infra for young generation 2022-02-02 10:29:55 +00:00
include Make empty V8DebuggerId ctor public 2022-02-08 16:41:31 +00:00
infra [infra] Add python3 trybot 2022-01-28 18:18:38 +00:00
samples cppgc: Fix hello world 2022-01-25 16:34:14 +00:00
src [heap] Support --expose-gc with shared heap 2022-02-10 07:43:27 +00:00
test [heap] Support --expose-gc with shared heap 2022-02-10 07:43:27 +00:00
testing [test][cleanup] Fix -Wshadow warnings in unittests 2021-09-27 08:59:01 +00:00
third_party Update V8 DEPS. 2022-01-26 12:51:01 +00:00
tools [run_perf] Replace usage of numpy with python3 statistics package 2022-02-09 14:12:13 +00:00
.bazelrc [bazel] Use v8_enable_handle_zapping only in debug builds. 2022-01-11 11:32:39 +00:00
.clang-format
.clang-tidy
.editorconfig
.flake8 remove swarming_client 2021-08-24 10:39:33 +00:00
.git-blame-ignore-revs
.gitattributes
.gitignore remove swarming_client 2021-08-24 10:39:33 +00:00
.gn Revert "[build] Separate out inspector as a shared library" 2021-07-02 16:15:20 +00:00
.mailmap Restore consistency between .mailmap and AUTHORS 2021-06-24 08:58:04 +00:00
.style.yapf [tools] Add basic pointer compression to grokdump 2022-02-04 14:35:26 +00:00
.vpython Verify mac-arm64 wheels for v8/.vpython spec. 2021-09-15 21:11:50 +00:00
.vpython3 [infra] Make various scripts compatible with Python3 2022-02-04 07:17:24 +00:00
.ycm_extra_conf.py [ycm] Fix python script 2021-07-29 09:48:32 +00:00
AUTHORS [snapshot] The length of the snapshot version string is 64 bytes 2022-01-10 14:46:58 +00:00
BUILD.bazel api: Deprecate v8::TracedGlobal 2022-02-04 15:38:17 +00:00
BUILD.gn [ext-code-space] Disable external code space by default on arm64 Fuchsia 2022-02-09 13:06:52 +00:00
CODE_OF_CONDUCT.md
codereview.settings
COMMON_OWNERS [owners] Add nikolaos@ to common owners 2022-01-12 09:37:27 +00:00
DEPS Update V8 DEPS. 2022-02-10 03:52:08 +00:00
DIR_METADATA
ENG_REVIEW_OWNERS Add verwaest@ to ENG_REVIEW_OWNERS. 2021-09-16 15:00:57 +00:00
INFRA_OWNERS
INTL_OWNERS
LICENSE
LICENSE.fdlibm
LICENSE.strongtalk
LICENSE.v8
LOONG_OWNERS [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
MIPS_OWNERS [mips] Add LiuYu to MIPS_OWNERS 2021-09-08 01:38:52 +00:00
OWNERS Let infra owners own all dot files 2021-11-05 18:57:18 +00:00
PPC_OWNERS
PRESUBMIT.py [bigint] Move multiplication to src/bigint/ 2021-04-19 15:40:43 +00:00
README.md
RISCV_OWNERS Add Lu Yahan to RISC-V owners list 2021-09-13 16:35:00 +00:00
S390_OWNERS
WATCHLISTS Add myself to heap/ watchlist 2021-11-08 16:58:14 +00:00
WORKSPACE [bazel] Cleanup style with Buildifier. 2022-01-11 10:00:36 +00:00

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://v8.dev/docs

Getting the Code

Checkout depot tools, and run

    fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

    git pull origin
    gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*

Contributing

Please follow the instructions mentioned at v8.dev/docs/contribute.