dart-sdk/runtime
Daco Harkes 2b5adb7231 [vm] Implement constant Maps in the VM
This CL changes the frontend to emit map and set constants which are
then processed by the constant reader in the VM.

This CL also introduces support for sending the const maps and sets
in messages between isolates and saving it in snapshots.

TEST=tests/language/const/map_test.dart (et al, for lookups)
TEST=tests/lib/isolate/message3_test.dart (et al, for isolate messages)
TEST=tools/test.py -c dartkp (for consts from clustered snapshot)
TEST=tools/test.py -n app_jitk-linux-debug-x64 (for consts from app
     jit snapshots)
TEST=Building the SDK which uses const Maps in clustered snapshots.

Closes: https://github.com/dart-lang/sdk/issues/45908

Change-Id: I1f8150a8aba8298c4e64d2571dd147743526135a
Cq-Include-Trybots: luci.dart.try:analyzer-nnbd-linux-release-try,app-kernel-linux-debug-x64-try,dart-sdk-linux-try,front-end-nnbd-linux-release-x64-try,pkg-linux-debug-try,vm-canary-linux-debug-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-checked-linux-release-x64-try,vm-kernel-linux-debug-x64c-try,vm-kernel-linux-debug-x64-try,vm-kernel-linux-debug-simarm64c-try,vm-kernel-nnbd-linux-release-simarm-try,vm-kernel-optcounter-threshold-linux-release-x64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64c-try,vm-kernel-reload-linux-debug-x64-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-precomp-linux-debug-simarm_x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-tsan-linux-release-x64-try,vm-kernel-tsan-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203765
Reviewed-by: Martin Kustermann <kustermann@google.com>
2021-09-06 06:28:59 +00:00
..
bin [vm] Remove support for dart-ext: imports 2021-09-02 14:14:35 +00:00
docs [build] Remove runtime_kernel target from GN build 2021-08-13 10:09:41 +00:00
include [vm] Remove support for dart-ext: imports 2021-09-02 14:14:35 +00:00
lib [vm/concurrency] Allow closures as entrypoints in Isolate.spawn calls 2021-09-03 19:08:37 +00:00
observatory [vm] Cleanup some workaround due to native extensions (which got removed) 2021-09-03 10:55:37 +00:00
observatory_2 [vm] Cleanup some workaround due to native extensions (which got removed) 2021-09-03 10:55:37 +00:00
platform [vm] Remove support for dart-ext: imports 2021-09-02 14:14:35 +00:00
tests Reland "[vm/concurrency] Enable isolate groups by-default in all modes" 2021-09-03 23:29:08 +00:00
third_party
tools [dartfuzz] Avoid more compile-time errors. 2021-08-31 23:11:26 +00:00
vm [vm] Implement constant Maps in the VM 2021-09-06 06:28:59 +00:00
.clang-tidy
.gitignore
BUILD.gn
codereview.settings
configs.gni
CPPLINT.cfg
PRESUBMIT.py [python3] Migrate PRESUBMIT.py files 2021-08-16 08:29:54 +00:00
runtime_args.gni