To avoid these flags being applied to unexpected build rules, we
separate them out into a separate config that is then pulled in
explicitly in the `dart_precompiled_runtime{,_product}` executable
rules. Only those two executables need the additional empty section:
the product version because it becomes `dartaotruntime` in the SDK
bundle, and the non-product version because some of our tests build
standalone executables using it.
The linker flags were originally removed due to
https://github.com/flutter/flutter/issues/112687.
With the recent removal of bitcode support from Flutter (see
https://github.com/flutter/flutter/issues/107883), I can build
the `ios_release` target locally without any issue.
This also reverts the clang DEPS changes from CL 256208 (again).
TEST=pkg/dartdev/test/commands/compile_test
Bug: https://github.com/dart-lang/sdk/issues/49783
Cq-Include-Trybots: luci.dart.try:analyzer-mac-release-try,dart-sdk-mac-arm64-try,dart-sdk-mac-try,pkg-mac-release-arm64-try,pkg-mac-release-try,vm-kernel-precomp-mac-product-x64-try,vm-kernel-precomp-nnbd-mac-release-arm64-try
Change-Id: Ie46402ec2eeda23109247eb9d7a64935ec2052cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262429
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
Change-Id: I1566febad2b4e1399f50bb923ad0596f04aa1a40
Cq-Include-Trybots: luci.dart.try:dart2wasm-linux-x64-d8-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262268
Reviewed-by: Joshua Litt <joshualitt@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Jackson Gardner <jacksongardner@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Improve discoverability of the tool, since it's an easier way to change
DEPS and it automates a useful CL description.
Change-Id: I0402126d11764bb56f9cef0cb2ec6fd54378b1e2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262848
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
This change is needed as a consequence of
https://github.com/dart-lang/language/pull/2422
where `()` was introduced as the syntax for the empty record as well
as the empty record type.
Change-Id: Ia8b3f590361343ca14355043c5898e7bd084c04e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261645
Reviewed-by: William Hesse <whesse@google.com>
Auto-Submit: Erik Ernst <eernst@google.com>
Commit-Queue: William Hesse <whesse@google.com>
We had multiple implementations of this logic and with the introduction
of IntersectionType some where not updated. Instead, this is now added
as a property of `DartType`.
Closes#50112
Change-Id: I2d7a3943b0577d905a1861aa35b0552578766993
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262960
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Instead of trying to make names assembler-friendly, instead just
quote the symbols names in the assembly output and use user visible
names for function and object symbols.
More specifically:
* This CL changes the symbol name from an assembler-safe version of the
scrubbed name to an assembler-unsafe version of the user visible name
that is then quoted when used in assembly output.
* For code symbols, regular stubs are prefixed with `stub`, allocation
stubs are prefixed with `new` and type testing stubs are prefixed with
`assert type is` (e.g., `stub Await`, `new RegExp`,
`assert type is List<Int>`). Function symbols have no prefix.
* Readonly data symbols begin with the type of the readonly data. If
there's any additional information (e.g., the function name for
objects like `PcDescriptors` when `SNAPSHOT_BACKTRACE` is defined),
that follows the type in parentheses.
* For direct-to-ELF snapshots, we allow symbols to have duplicate names.
Thus, internally we create unique ids for all created symbols and
refactor the ELF and DWARF subsystems to pass and store these ids
instead of the symbol names.
* For assembly output, symbols must have unique names. The namer now
has a `CStringIntMap` that keeps counts of the number of times a
given symbol name has been generated for assembly output. If the
symbol name is in the `CStringIntMap`, then the new count in the map
is added as a suffix to ensure uniqueness.
For example, the first symbol created using the name `_StringBase.[]`
has no suffix. If a second symbol is created using the same name,
the second symbol is instead named `_StringBase.[] (#2)`.
This also happens for read-only objects with additional information if
that additional information is not sufficient to make it unique, and
is added separately from that additional information.
* A further restriction for assembly output is that symbols that begin
with 'L' have special meaning to the assembler. Thus, we keep the
old system of prepending such symbol names with an underscore to
avoid this behavior.
TEST=vm/dart{,_2}/use_add_readonly_data_symbol_flag
Bug: b/248012965
Change-Id: I1b6e876f4fb4f42f4a3b90e03110a34a87a03a7c
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-dwarf-linux-product-x64-try,vm-kernel-precomp-linux-product-x64-try,vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-nnbd-linux-release-x64-try,vm-kernel-precomp-nnbd-mac-release-arm64-try,vm-kernel-precomp-mac-product-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262242
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
These fields were not used.
One field was verified in the element model, but no error was ever
derived from it. The error that maybe once was reported from it is now
reported as `INVALID_OVERRIDE`.
Change-Id: I19c57310d39142333cd3c3af9780f28789d56ab5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262846
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
This saves about 400MB heap when loading a 900MB .dill file.
Change-Id: I5a09b06764cb493aab8dade2afb4665e12688133
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255802
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
Fix found issues.
Change-Id: I72f3eed470f0cb474ae9db75ec7ee4f0fd805563
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262841
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Enable concurrent marking for IA32.
This removes the last write barrier relying on different alignment offsets for old and new space.
TEST=ci
Change-Id: Ib1c13124002392cf1c3ec264643325ec471a6918
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262280
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Paul convinced me that adding them was a mistake, most of these tests
are about how it is parsed in various contexts, not necessary doing
anything differently for resolution.
Change-Id: I6e1336d96ce1fa2cff4f94ada35005c9aa804374
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262665
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>