Previously, we didn't use a sysroot for the host toolchain used to
create the host_tool used in dart_actions. The compile action then
failed on the new goma backend causing long build times.
Before (dart-sdk-linux-try/429, ~38 mins):
finished=10627 cache_hit=7334 retry=3277 fail=3277
After (dart-sdk-linux-try/430, ~12 mins):
finished=10625 cache_hit=7352 retry=0 fail=0
Change-Id: Iebf967be6eb67c3056f766839a3d58d18fc608f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150421
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Auto-Submit: Alexander Thomas <athom@google.com>
When tests are run internally under bazel, there's no `version` file
we can look for to verify that we are looking at an SDK directory.
Looking for a `bin` directory works equally well.
Change-Id: Ib19350eaf90d105ebaa3d197fb45b5a41a10179d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150285
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Speeds up decoding across the board, with medium-length pure ASCII
strings seeing about 2x on X64 and IA32.
Closes https://github.com/dart-lang/sdk/issues/41702
Change-Id: I1c8e0bc69baaaeb6755d4c775e6fa0e6d18e1c57
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148762
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
This also cleans up FixProcessor by removing some now unused field, etc.
Change-Id: Id4df8b196e3930cdf2f0872c421571edc021041e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150273
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
It was close to the 3 hour timeout and sometimes exceeded it.
Change-Id: I01cca72f64bc88ec6aeb921358a46ce209c1598b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150105
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
This avoids treating addresses within segments added after the isolate
text section as valid PC addresses for our DWARF information.
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-release-simarm_x64-try,vm-kernel-precomp-linux-product-x64-try
Change-Id: Ibdac611d97b5a24226c226a3904c958f131ab961
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149290
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Fixes https://github.com/dart-lang/sdk/issues/42216
Report when an extension declares a type parameter with the same name as the
extension.
Report when an extension declares a member with the same basename as the name
of any of the extension's type parameters.
Move tests into diagnostics/.
Move tests for RECURSIVE_INTERFANCE_INHERITANCE.
Change-Id: If19041571008b9b14122d9ff458d1d30ea0ff034
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150270
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
A HParameterValue can be an SSA value or a mutable local variable
accessed via HLocalFet/HLocalSet. The latter happens in code that is not
completely SSA-converted (due to exception control flow).
The main bug is that the check on a mutable-variable-mode HParameterValue
should have been on a HLocalGet of the value, and not the HParameterValue
itself. This means that a reference to the HParameterValue cannot be
replaced with a strengthening check, as that breaks the invariant that
HLocalGet/Set refer to variables. There was code in types_propagation
that tried to work around this broken invariant.
The bug (issue 42189) required
- An elided instance method parameter
- try(-catch)(-finally) to avoid complete SSA-conversion
- -O0 to avoid optimizing away the check early with inferred types
The first attempt at a fix was to not check the elided parameter at all
since the default value is statically checked. This is still worthwhile.
Bug: 42189
Change-Id: Idd5e2b1485eba4950a36d1e4ff57ebe35e4c98a0
Fixed: 42189
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150171
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
This reverts commit 6a98e2719e.
Reason for revert: Unexpected test failures
Original change's description:
> [VM/nnbd] Canonicalize TypeParameter objects in the VM.
>
> Prior to this CL, type parameters were all assumed canonical, even duplicate ones.
>
> Per a new convention introduced in this CL, the type parameter array in generic classes and generic functions contains canonical type parameters. As these type parameters get cloned with a different nullability, they are inserted in a new hash table of canonical type parameters.
>
> This fixes performance issue https://github.com/dart-lang/sdk/issues/41421
>
> Change-Id: I9086158fa6b6261e9997bb50edec6d7c54abbfa1
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148223
> Commit-Queue: Régis Crelier <regis@google.com>
> Reviewed-by: Ryan Macnak <rmacnak@google.com>
TBR=rmacnak@google.com,alexmarkov@google.com,asiva@google.com,regis@google.com
Change-Id: I0ca3b6b66e2281c285eba6b564f78c0e6b2f2217
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150265
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
Prior to this CL, type parameters were all assumed canonical, even duplicate ones.
Per a new convention introduced in this CL, the type parameter array in generic classes and generic functions contains canonical type parameters. As these type parameters get cloned with a different nullability, they are inserted in a new hash table of canonical type parameters.
This fixes performance issue https://github.com/dart-lang/sdk/issues/41421
Change-Id: I9086158fa6b6261e9997bb50edec6d7c54abbfa1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148223
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Also:
* Clean up lints in both unmigrated and migrated versions of benchmarks.
* Cache lists in local variables in Uint8ListCopyViaLoopBenchmark and
Float64ListCopyViaLoopBenchmark to make the same number of field
accesses as in other benchmarks, in order to make comparison between
different ways of copying typed data more fair.
Change-Id: I1e7e726ebf1f3cf6c199fce515c2a56d94576ba6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150280
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Clean up signatures of runtime functions in object.{cc,h} using the trail to avoid cycles. Move the trail to the last parameter of these functions.
Introduce a trail in IsSubtypeOf() to avoid cycles introduced by bounds of F-bounded types. Issue uncovered by the new normalization tests.
Change-Id: I3241c7e4023a09c122e1594b7aff90b5b103f4f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150180
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Change-Id: I9336b7fa58c144c8b946e7aac3128a9d9925d7d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149787
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
Initializer functions are created lazily at compile time when generating
LoadField which calls initializer. This may happen in the background
compiler thread, where Field objects are cloned.
EnsureInitializerFunction should be called from original field, and it
should be properly synchronized to make sure there are no races with
mutator thread.
Change-Id: Icc339afa2ee410385019c72c717737719767d367
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150166
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
The values are now only printed when `verbose` is enabled, and are
sorted based on how mig an impact completions in those locations are
impacting the total.
Change-Id: I913f82e57cf0a97d3465b0b41d9431ca3cf56e30
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150262
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
local_declaration_visitor.dart was updated to better implement ConstructorDeclarations
This adds the API of _recordCompletionElement() and _elementAlreadyInCompletionSet() to local_reference_contributor.dart, if this API looks good and lands, I will use it in the rest of the contributor to fix other known shadowing bugs.
local_constructor_contributor_test.dart was removed (a large copied & pasted body of tests not providing value) and tests were added at the beginning of local_reference_contributor_test.dart. Tests in this file were also updated accordingly.
The change of the testCommentSnippets025 test in completion_test.dart is due to the framework not supporting (in a more robust way) the allowance of both a class and an implicit constructor
The addition of the testCommentSnippets045 test in completion_test.dart is to show that constructor invocations don't need the new keyword.
Change-Id: Ic4a52e3cb94320a92f24b1c743dd61e18c6c7b16
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150165
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
I believe that the original code was written before ResolvedUnitResult
had a direct pointer to the library element. This is a little cleaner
and might possibly be more performant.
Change-Id: I232aa5747c62986f37601f042ce5a1d659d11d19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150222
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This is the idle equivalent of 3451c348db.
Change-Id: Ica6e0595c39257540ea731355868a107de2c2597
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149960
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Discovered using the DevTools widget inspector with a Flutter
application which did not have a flutter_tools instance connected. The
widget inspector attempts to evaluate expressions, the VM service
realizes there's no external compilation service and attempts to fall
back onto the kernel isolate's compilation service. The crash occurs as
KernelIsolate::InitializeState had not been called during initialization
as Dart_InitializeParams.start_kernel_isolate == false.
Fixes b/155649002
Change-Id: I9b1225f17dc4d4dff39503d4353b3bb539b08267
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149880
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
There should be no way this could cause an unexpected failure
or break soundness but there is no reason to be marking the type
parameter as a legacy type in the check.
Change-Id: Ib4cf22cacd78d6cb9b55dd6ed594c75aa81ceead
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149887
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
When running ddb with `--debug` pull the SDK .dill and .js files from
ReleaseX64/gen/utils/dartdevc and require.js from third_party/require.
Change-Id: Ibcfd5e1d32c39cca3583cfef14fe8393e0846d69
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149886
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Change-Id: If9006620414f7c0a857b4ebeb733f97a63d52e2d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150161
Auto-Submit: Nate Bosch <nbosch@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
The code tried to create the command output object twice in this case.
Change-Id: Icfb413ba329738cb732330d22885f62ccb7a99e2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150102
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: William Hesse <whesse@google.com>