2021-02-22 whesse@google.com Fix syntax error in test expectation in ffi test (#1002)
2021-02-20 irina.arkhipets@gmail.com#1000: Missing Issue tags added.
2021-02-20 irina.arkhipets@gmail.com Issue #1000: tests updated according to the recent result analysis
2021-02-20 sgrekhov@unipro.ru Roll failures fixed
2021-02-19 sgrekhov@unipro.ru#999. Missed experiment flags added
2021-02-19 sgrekhov@unipro.ru#993. 32 and 64-bit integer tests added
2021-02-19 sgrekhov@unipro.ru#993. Change test to expect compile error if struct subclass created by the constructor
2021-02-19 sgrekhov@unipro.ru#993. Remove tests that run "nm" command
2021-02-18 sgrekhov@unipro.ru#993. More ffi tests added
2021-02-18 irina.arkhipets@gmail.com Instantiate-to-bounds tests apdated according to the SDK Issues 44223, 42446 evaluation.
2021-02-17 irina.arkhipets@gmail.com Issue #535: nnbd-strong requirement added to the tests, more tests for constant evaluation and canonicalization added.
2021-02-17 sgrekhov@unipro.ru Some of type aliases tests fixed
2021-02-17 sgrekhov@unipro.ru#993. More Struct tests added
2021-02-16 irina.arkhipets@gmail.com Issue #535: more tests for constant evaluation and canonicalization added.
2021-02-12 irina.arkhipets@gmail.comFixes#994: test expectesions updated according to the recent SDK changes.
2021-02-12 sgrekhov@unipro.ru#993. More Struct tests added
2021-02-12 irina.arkhipets@gmail.com Merge remote-tracking branch 'origin/master'
2021-02-12 sgrekhov@unipro.ru#993. NativeType and Struct tests added
2021-02-11 irina.arkhipets@gmail.comFixes#991: tests updated according to the recent SDK changes.
2021-02-08 sgrekhov@unipro.ru#993. sizeOf() tests added
2021-02-05 sgrekhov@unipro.ru#993. More tests for DynamicLibrary added
2021-02-04 sgrekhov@unipro.ru#993. DynamicLibrary constructors tests added
2021-02-03 sgrekhov@unipro.ru#993. co19 ffi tests. Initial commit
2021-02-02 sgrekhov@unipro.ruFixes#992. Boolean conditional evaluation tests added
2021-02-01 irina.arkhipets@gmail.comFixes#990: tests updated according to the recent SDK changes.
2021-01-28 irina.arkhipets@gmail.comFixes#979: I-2-b tests updated according to the recent changes for dart-lang/language#1133
2021-01-28 irina.arkhipets@gmail.comFixes#984: I-2-b tests updated according to the recent changes for dart-lang/language#1133
2021-01-27 sgrekhov@unipro.ruFixes#989. Runtime type equality operator tests added
2021-01-26 irina.arkhipets@gmail.comFixes#988: Static warning checks corrected.
2021-01-25 sgrekhov@unipro.ruFixes#987. Local variables and inference tests added
Cq-Include-Trybots: dart/try:analyzer-nnbd-linux-release-try,analyzer-nnbd-mac-release-try,analyzer-nnbd-win-release-try,dart2js-nnbd-linux-x64-chrome-try,ddc-nnbd-linux-release-chrome-try,front-end-nnbd-linux-release-x64-try,front-end-nnbd-mac-release-x64-try,front-end-nnbd-win-release-x64-try,vm-kernel-nnbd-linux-debug-ia32-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-release-ia32-try,vm-kernel-nnbd-linux-release-simarm-try,vm-kernel-nnbd-linux-release-simarm64-try,vm-kernel-nnbd-linux-release-x64-try,vm-kernel-nnbd-mac-debug-x64-try,vm-kernel-nnbd-mac-release-x64-try,vm-kernel-nnbd-win-debug-x64-try,vm-kernel-nnbd-win-release-ia32-try,vm-kernel-nnbd-win-release-x64-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-nnbd-linux-release-simarm64-try,vm-kernel-precomp-nnbd-linux-release-x64-try,vm-kernel-precomp-nnbd-mac-release-simarm64-try,vm-kernel-precomp-nnbd-win-release-x64-try
Change-Id: I78ba37f9c74d2afc360ef5fbd51d01ab75239fd6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186146
Reviewed-by: Jonas Termansen <sortie@google.com>
This reverts commit 3892e95547.
Reason for revert: Breaks Flutter web
Original change's description:
> [cfe] Encode field references as @getters and @setters
>
> This removes the @fields and @=fields canonical name
> encodings that allowed for encoding of conflicting members
> and didn't support field<->getter/setter conversion
> between dills or between outline and full dill.
>
> TEST=existing tests
>
> Change-Id: Id15e58ad4d1847d2c98a688705e5945196146c6d
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184783
> Commit-Queue: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Jens Johansen <jensj@google.com>
> Reviewed-by: Alexander Markov <alexmarkov@google.com>
Change-Id: I744e284b16e097fa0833c5bdf1bc7653f13bdf63
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186147
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
This is a reland of b6dc4dad4d
TEST=ci
Original change's description:
> [vm/aot] Avoid using most Code objects in stack traces with --dwarf-stack-traces
>
> The following changes are done in preparation for the removal of Code
> objects in AOT with --dwarf-stack-traces:
>
> * Stack trace objects are extended to hold uword PCs (which may not
> fit into Smi range).
>
> * Scanning stack frames in GC (StackFrame::VisitObjectPointers)
> now avoids using Code objects.
> In order to find CompressedStackMaps it now calls
> ReversePc::FindCompressedStackMaps.
>
> * Singleton Code object (StubCode::UnknownDartCode()) is prepared as
> a replacement for Code objects in stack traces. It has
> PayloadStart() == 0 and Size() == kUwordMax so it includes
> arbitrary PCs.
>
> * In --dwarf-stack-traces mode, most Code objects obtained from stack
> frames are replaced with StubCode::UnknownDartCode().
> This simulates future behavior of ReversePc::Lookup when Code objects
> will be removed.
>
> Issue: https://github.com/dart-lang/sdk/issues/44852
> Change-Id: I7cec7b8b9396c9cfeca3c256a412ba4e82a7e0c4
> TEST=ci
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182720
> Commit-Queue: Alexander Markov <alexmarkov@google.com>
> Reviewed-by: Tess Strickland <sstrickl@google.com>
> Reviewed-by: Martin Kustermann <kustermann@google.com>
Change-Id: Ia2fc4672a085cd963b7fc103369851df3603590c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186202
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
When running dart2js in its "linker scenario" on a large internal app
this saves something along the lines of 140MB of memory.
Change-Id: I348f5c46ec430c5a486591897557bfef95d3b435
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185827
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
With packed structs, the x64 non-Windows ABI only put structs in CPU/FPU
registers when all it fields happen to be aligned.
This CL introduces the `NativeType::ContainsUnalignedMembers` query
for calling convention calculations.
Bug: https://github.com/dart-lang/sdk/issues/38158
tools/build.py run_ffi_unit_tests && tools/test.py ffi_unit
TEST=runtime/vm/compiler/ffi/native_calling_convention_test.cc
TEST=runtime/vm/compiler/ffi/native_type_test.cc
These tests are exercised on vm-precomp-ffi-qemu-linux-release-arm-try.
Change-Id: I504f67ae22a6af375d5eb57ff26b58d340099df8
Cq-Include-Trybots: luci.dart.try:vm-precomp-ffi-qemu-linux-release-arm-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186142
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
This is the first part of using the new encodings of MethodInvocation,
PropertyGet and PropertySet in dart2js. In this CL the new visitors
are implemented in static_type.dart. This change is done by refactoring
the existing implementation into helpers and new registration methods
that can be used by both the old and the new encoding but lends itself
to take advance of the new encoding. The new encoding is not enabled
until all of dart2js has been migrated to the new encoding. The
refactoring is intentionally not changing the outcome of the
static_type.dart to make it easier to detect accidental regressions
introduced by the migration.
Change-Id: I93d2033969c33d4c7a5957ad7a6c0b1cdf47fe6f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184220
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
This removes the @fields and @=fields canonical name
encodings that allowed for encoding of conflicting members
and didn't support field<->getter/setter conversion
between dills or between outline and full dill.
TEST=existing tests
Change-Id: Id15e58ad4d1847d2c98a688705e5945196146c6d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184783
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Most lists created when loading a dill file are growable.
That's not always needed, though, and a non-growable list is more compact than
a growable one.
When running dart2js in its "linker scenario" on a large internal app
this saves something along the lines of 90MB of memory.
Change-Id: I113a73ed150efb56a5172ac7e1daf1d28f4bc188
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185825
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
* When looking for Code node owner simply always check for synthetic
owner (referenced through ':owner_' property) first. If it is present
then it means 'owner_' property is invalid anyway. 25fd0200ef changed
how WSRs are written into snapshot (instead of writing WSRs we are
simply writing SMI CIDs) which broke previous logic.
* When building ProgramInfoNode for a Class node accommodate for the
existence of classes which don't have 'library_' property (e.g. base
objects like void and dynamic). Additionally, adjust how these base
objects are written into the snapshot profile so that we preserve
their names.
* Tweak tests diff and diff-collapse tests to pass, they were failing
because prologue removal compiler change made some of the diffs so
tiny that they are ignored by threshold filtering.
* Add two more tests: one that verifies that tracings flags don't have
any impact on the snapshot size and one that checks we correct
attribute instructions size to the function node from which these
instructions originated. This last test is added in anticipation of
Code object removal to make sure that vm_snapshot_analysis continues
to work correctly.
* Adjust sorting rules for Code cluster to make it more stable between
slightly different programs to stabilize output of
--print-instructions-sizes-to (depends on the sorting algorithm used
in libc, the test was failing on Mac but not on Linux).
These fixes should unblock relanding of b6dc4dad4dFixes#44507Fixesflutter/flutter#76313
TEST=pkg/vm_snapshot_analysis/test/instruction_sizes_test.dart
Cq-Include-Trybots: luci.dart.try:pkg-linux-release-try,pkg-win-release-try,pkg-mac-release-try
Change-Id: Iee0221dd3a507cb4f36d530404693ebfab3b7bf2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185826
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
This is being mailed ahead of the fix, as the fix will probably
require google3 cleanup first.
* Change outermost loop over `usedElements.prefixMap` from forEach to a
for-each loop which allows more efficient short-circuiting.
* Short-circuit continue when `_prefixElementMap[prefix] is null.
* Short-circuit continue when `namespace` is null in a few locations.
Bug: https://github.com/dart-lang/sdk/issues/45028
Change-Id: I5bf1e571c436132665a87625a46cdc0c3f1ef2d9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186040
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Some of the weights we used were missing causing blurry text. I've also switched from Source Code Pro to Roboto Mono to be consistent with other Dart websites.
While not related I also updated the semver link to https.
Change-Id: Ifc4a10a05d795134caade2081045517426c21fc3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185941
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
All of the tests in dart2_inference_test work fine in null safety,
except a small handful. I moved these into more modern test locations,
and updated the tests to be simpler.
Much much much of the assignment tests were already covered in
assignment_test.dart. I just added a few test cases that did not have
the same coverage.
Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: I144ad4aa7e839c47af0d24c3118ce7bd91eeca7c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185724
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
In the course of implementing "why not promoted" support, I am having
trouble following the various error cases in type_inferrer.dart and
when they're triggered, so I decided to start adding short comments
illustrating how they each one arises. I'll add more comments as the
implementation gets further along and I cover more error cases.
Change-Id: Icde498a4b884e1725cf98f8b9312879a696916bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185841
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>