v8/tools
Patrick Thier 7649960cf2 Reland "[strings] Support shared external strings"
This is a reland of commit d00c040547

Changes since revert: Use AsAtomicTagged instead of
base::AsAtomicPointer to store a hash value in the forwarding table.

Original change's description:
> [strings] Support shared external strings>
>
> With this CL shared strings can be externalized and external strings can
> be shared.
> The StringForwardingTable is used to delay the real transition to the
> next full GC. On the API side strings marked for externalization will
> look like externalized strings.
>
> Bug: v8:12957
> Change-Id: I53b6509129bc5679c06bdf99421bdb41ea5d9082
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3849643
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Commit-Queue: Patrick Thier <pthier@chromium.org>
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Reviewed-by: Victor Gomes <victorgomes@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#82966}

Bug: v8:12957
Change-Id: I17715e927e4339240a6aa12a3c4a3c2ea50eb567
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3871211
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83018}
2022-09-07 08:54:16 +00:00
..
bazel [bazel] Add optional deps for prebuilt bazel for bots 2021-06-22 08:42:15 +00:00
builtins-pgo [builtins] Fix typo in tools/builtins-pgo/generate.py 2022-08-29 08:55:39 +00:00
cfi [cfi] Use inclusive terminology 2020-07-28 05:57:41 +00:00
clusterfuzz [foozzie] Avoid more contradictory flags 2022-09-05 08:37:26 +00:00
cppgc Reland "Reland "Reland "cppgc: Enable checks for assignments in prefinalizers""" 2021-09-29 16:02:17 +00:00
debug_helper Revert "[sandbox] Sandboxify ExternalString external pointers" 2022-09-05 09:47:24 +00:00
dev [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gcmole [tools][gcmole] Add run_gcmole.py --help and drop env vars 2022-04-20 15:26:35 +00:00
generate_shim_headers [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
heap-layout [tools] Add placeholder comment for analytics code 2022-08-22 12:41:18 +00:00
heap-stats [tools] Add placeholder comment for analytics code 2022-08-22 12:41:18 +00:00
js [tools] Fix parse-processor 2022-08-04 19:00:33 +00:00
jsfunfuzz [test] update the jsfunfuzz archive in Google Storage 2018-12-18 15:00:35 +00:00
link_clicker.extension [tools] Add link_click chrome extension 2017-05-09 15:25:21 +00:00
mb [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
memory [tools] Clean up insensitive terms 2020-12-01 20:02:48 +00:00
msan Rename msan blacklist.txt to ignorelist.txt 2021-05-27 08:24:50 +00:00
perf [tools] Refactor patch/no-patch terminology in run_perf.py 2017-11-22 07:19:50 +00:00
profiling [tools] Improve linux-perf-d8.py 2022-09-05 13:04:05 +00:00
profview [tools] Profview fixes 2022-08-30 13:55:08 +00:00
release [tools] Make roll_merge_gerrit.py also submit 2022-08-23 14:34:29 +00:00
sanitizers [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
snapshot [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
system-analyzer [tools][system-analyzer] Add support for apkEmbeddedLibrary and targetRootFS 2022-08-10 17:03:56 +00:00
testrunner [test] Add logging to test runner 2022-09-06 19:19:25 +00:00
toolchain [build] Add support for the other MIPS architectures 2018-03-19 10:43:07 +00:00
torque [tools] Clean up Py2 code 2022-03-17 09:05:27 +00:00
tracing/proto-converter [tools] Refactor, use built-in Array.flat() instead of custom flatten method 2021-05-31 07:46:15 +00:00
turbolizer [turbolizer] Bytecode view constant pool fix 2022-08-30 13:56:10 +00:00
ubsan [respect] Rename UBSAN's blacklists to ignorelists 2021-04-28 07:55:39 +00:00
unittests [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
v8.xcodeproj
v8windbg [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
valgrind/asan [build] Add testrunner data deps 2018-03-26 12:17:08 +00:00
vim [vim] Update vim scripts 2021-04-01 16:14:04 +00:00
visual_studio
wasm [tools][wasm] wami: Support hexdump for invalid modules 2022-08-12 10:50:08 +00:00
wasm-compilation-hints [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
zone-stats [tools] Add placeholder comment for analytics code 2022-08-22 12:41:18 +00:00
__init__.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
adb-d8.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
android-build.sh
android-run.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
android-sync.sh [mjsunit][tools] Sync module files for tests 2020-10-07 12:45:19 +00:00
arguments.mjs [tools] Cleanup Arguments processing in tools 2021-06-01 09:43:46 +00:00
avg.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
bash-completion.sh [bash-completion] Support some gm.py completion 2021-03-24 16:24:25 +00:00
bigint-tester.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
BUILD.gn [tools][wasm] Add "wami", the Wasm Module Inspector 2022-07-05 04:45:28 +00:00
callstats_groups.py [web snapshot] web snapshot <3 RuntimeCallStats 2021-05-19 12:16:28 +00:00
callstats-from-telemetry.sh [tools] Fix callstats 2022-02-17 19:12:24 +00:00
callstats.html [tools] Add placeholder comment for analytics code 2022-08-22 12:41:18 +00:00
callstats.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
callstats.py.vpython [tools] Fix platform specification for scipi 2018-08-17 18:49:49 +00:00
check-inline-includes.sh [iwyu] Extend inline include checking to tests. 2017-09-08 09:31:32 +00:00
check-static-initializers.sh Bump expected static initializers count from 2 to 3 2021-02-12 09:47:44 +00:00
check-unused-bailouts.sh [tools] Speed-up check-unused-bailouts.sh 2017-08-02 11:11:19 +00:00
check-unused-symbols.sh [cleanup] Remove unused heap-symbols and add tool. 2018-11-08 17:57:05 +00:00
codemap.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
collect_deprecation_stats.sh [objects] Deprecate GetIsolate/Heap behind a flag 2018-06-01 15:19:21 +00:00
compare_torque_output.py [v8] Migrate compare_torque_output to py3 2022-02-08 15:46:11 +00:00
compare-table-gen.js Add more exhaustive tests for Math.min and Math.max. 2015-04-10 12:35:16 +00:00
consarray.mjs [tools] Migrate more tools to ES6 classes 2021-01-11 16:40:39 +00:00
cpu.sh [tools] Allow specifying cores for cpu.sh script. 2015-11-18 10:53:30 +00:00
cross_build_gcc.sh
csvparser.mjs [tools][system-analyzer] Various improvements 2022-04-08 19:46:22 +00:00
DEPS
detect-builtins.js [tools] Fix detect-builtins.js 2016-06-09 10:17:32 +00:00
disasm.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
draw_instruction_graph.sh
dump-cpp.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
dumpcpp-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
dumpcpp.mjs [tools][system-analyzer] Speed up log parsing 2022-04-06 11:31:03 +00:00
eval_gc_nvp.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
eval_gc_time.sh Remove all leftovers of store buffer 2021-11-10 09:29:41 +00:00
find_depot_tools.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
find-builtin [tools] Add a tool for finding builtins 2021-04-07 12:51:38 +00:00
find-commit-for-patch.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
freebsd-tick-processor
fuzz-harness.sh [compiler] Make --debug-code the default in debug builds. 2016-12-02 11:36:55 +00:00
gc_nvp_common.py Clean up mark-compact phases and GC counter names. 2015-12-11 11:26:21 +00:00
gc-nvp-to-csv.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gc-nvp-trace-processor.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gdb-v8-support.py [tools] Fix gdb redirect helper in gdb-v8-support.py 2021-10-21 12:27:45 +00:00
gdbinit Revert "[tools] Add a simple gdb frame unwinder" 2022-05-12 14:48:42 +00:00
gen-inlining-tests.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gen-keywords-gen-h.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gen-postmortem-metadata.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
gen-v8-gn.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
generate-builtins-tests.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
generate-header-include-checks.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
generate-runtime-call-stats.py [tools] Fix retention of json files in RCS script 2020-03-26 12:07:56 +00:00
generate-ten-powers.scm
get_landmines.py [py3] Bump get_landmines to py3 2022-04-04 11:03:36 +00:00
grokdump.py [tools] grokdump: Fix objdump detection for Python3 2022-06-23 14:28:54 +00:00
ic-processor [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
ic-processor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
index.html [tools] Fix index.html links 2022-08-29 14:14:56 +00:00
linux-tick-processor [tools] Port more tools to ES6 classes 2020-11-04 14:45:41 +00:00
lldb_commands.py [tools] Set up source map for lldb 2021-07-01 18:04:17 +00:00
locs.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
logreader.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
mac-nm [tools] Profview fixes 2022-08-30 13:55:08 +00:00
mac-tick-processor
Makefile.tags [Makefile] Move tags generation to standalone Makefile 2018-01-26 12:03:32 +00:00
objdump-v8 [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
OWNERS [owners] Includes infra team as tools owners 2021-11-25 07:55:08 +00:00
package-lock.json [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
package.json [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
parse-processor [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
parse-processor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
parse-processor.html [tools] Add placeholder comment for analytics code 2022-08-22 12:41:18 +00:00
parse-processor.mjs [tools] Fix parse-processor 2022-08-04 19:00:33 +00:00
perf-compare.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
predictable_wrapper.py [tools] Clean up predictable wrapper py2 code 2022-07-18 07:38:42 +00:00
PRESUBMIT.py Reland "[tools] Clean up py2 code" 2022-03-25 12:14:26 +00:00
process-wasm-compilation-times.py [wasm] Tweak constants for estimating code space size 2022-03-15 14:41:13 +00:00
profile_view.js
profile_view.mjs [tools] Modernize tools .mjs files 2020-11-10 12:32:26 +00:00
profile.mjs [tools][profile] Add support for maglev optimisation markers 2022-07-27 08:48:25 +00:00
README.md [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
regexp-sequences.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run_perf.py [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
run-clang-tidy.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run-num-fuzzer.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run-tests.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run-wasm-api-tests.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
run.py [tools] Switch script wrapper to Py3 2022-04-04 14:13:17 +00:00
shell-utils.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
sourcemap.mjs [tools][system-analyzer] Add profiler-panel 2022-04-26 17:57:03 +00:00
splaytree.mjs [tools] Improve system analyzer 2022-03-02 13:41:32 +00:00
stats-viewer.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
test262-results-parser.js test262 roll 2018-08-28 21:18:23 +00:00
tickprocessor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
tickprocessor.mjs [tools][profile] Add support for maglev optimisation markers 2022-07-27 08:48:25 +00:00
try_perf.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
turbolizer-perf.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
update-object-macros-undef.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
v8_presubmit.py [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
v8heapconst.py Reland "[strings] Support shared external strings" 2022-09-07 08:54:16 +00:00
whitespace.txt Revert "White space to trigger Skia branch rollers" 2022-06-30 14:24:17 +00:00
windbg.js [heap] Add base class for LargeObjectSpaces 2019-10-25 09:22:57 +00:00
windows-tick-processor.bat [tools] Use .mjs in windows-tick-processor.bat 2021-01-07 09:00:23 +00:00
wpr.wprp Step 1 (of 3-ish): Basic ETW Instrumentation in V8 2021-01-05 20:11:03 +00:00

TOOLS

This directory contains debugging and investigation tools for V8.

The contents are regularly mirrored to http://v8.dev/tools.

Local Development

For local development you have to start a local webserver under http://localhost:8000:

  cd tools/;
  npm install;
  ws;

Local Symbol Server

The system-analyzer can symbolize profiles for local binaries by running a local symbol server

  cd tools/;
  ws --stack system-analyzer/lws-middleware.js lws-static cors;

Note that the local symbol server will run nm and objdump and has access to your files.