Macros to control inlining are not used and we explicitly recommending against
playing with compiler inlining. The macros for alignment became part of the
standard in C++11 and we already use the standard variants over these macros
(see `PointerData`). The formatters are unused as well and we use the stream
based variants for formatting.
These should only be used on host binaries for more detailed crash reports.
Installing the handler on targets (iOS/Android) may cause use to break existing
crash reporting mechanisms users may have installed themselves in the process.
This should work on Darwin & Linux for now.
Doing something like int* a = nullptr; *a = 12; or abort or tripping an
assertion should print something the following before program termination. We
can tweak the report further if necessary.
```
[ERROR:flutter/fml/backtrace.cc(110)] Caught signal SIGSEGV during program execution.
Frame 0: 0x10658342c void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)
Frame 1: 0x106555070 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)
Frame 2: 0x106554f81 testing::Test::Run()
Frame 3: 0x106555dc3 testing::TestInfo::Run()
Frame 4: 0x1065570a1 testing::TestSuite::Run()
Frame 5: 0x106562a55 testing::internal::UnitTestImpl::RunAllTests()
Frame 6: 0x10658c22c bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)
Frame 7: 0x1065625c3 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)
Frame 8: 0x106562445 testing::UnitTest::Run()
Frame 9: 0x105c8dc33 RUN_ALL_TESTS()
Frame 10: 0x105c8dbe6 main
Frame 11: 0x7fff7c2dc3d5 start
```
Known issue: This routines that generate the stack trace are not signal safe.
But since we only use the same before the process is terminating, this ought to
be fine. I’ll work in a separate patch to convert all the internals to be signal
safe. In the meantime, this will help us better identify the causes of flakes on
our bots.
Fixes https://github.com/flutter/flutter/issues/50244
This moves the Metal `GrContext` creation utilities from `GPUSurfaceMetal` into
a separate `IOSContext` object subclass. An analogue of this object was used in
the GL regime for the management of onscreen and offscreen contexts that were
not tied to the lifecycle of the `GPUSurface`. This pattern has now been
generalized for use with all backends that need a resource context
(`IOSContextGL` and `IOContextMetal`).
The platform views controller management in the `ExternalViewEmbedder` interface
implementation was repeated three times for [Metal][metal], [OpenGL](opengl) and
[Software](software) rendering. This repetition has been removed and a single
implementation present in the base `IOSSurface` and used on all platforms.
Addition of new client rendering APIs should not affect how the engine renders
into the platform view interleaving levels.
All rendering API selection logic has been moved into a single set of utilities
in `rendering_api_selection.h`. This enables the removal of a lot of code blocks
guarded by `FLUTTER_SHELL_ENABLE_METAL`. The remaining uses of this will be
removed when unified builds are enabled.
The Metal backend now also adds traces similar to the GL backend.
The `IOGLContext` has been renamed to `IOContextGL` to be more in line with the
convention used in this library.
Fixes https://github.com/flutter/flutter/issues/41827
Adds https://github.com/flutter/flutter/issues/52150
[metal]: 46dbf3a761/shell/platform/darwin/ios/ios_surface_metal.mm (L55)
[opengl]: 46dbf3a761/shell/platform/darwin/ios/ios_surface_gl.mm (L95)
[software]: 46dbf3a761/shell/platform/darwin/ios/ios_surface_software.mm (L146)
Changes since last roll:
```
97674262bc [dart2js] Fix type argument with nnbd and extractTypeArguments.
ed2092e786 [vm] Add TFA transformer expectation files for unboxing metadata
44a4f366e2 [sdk] Updating Stream.contains to accept null values.
7e0139e0c0 [vm/corelib] Improve performance of list copying
ec8941b189 [dartdevc] Hoisting subtype caches to addTypeCaches.
f5a6554635 Move 'thisType' to ResolverVisitor.
b311a0052e Fixes REMOVE_UNUSED_FIELD and optional field formal parameters.
c83c9b40c5 [vm] Implement toString() for unboxing metadata, only write unboxing metadata if not fully boxed (which is default)
7ac22948e5 [CFE] More error for type variable in static contexts
30a12a349e Revert "Re-land "[vm] Aggressive write-barrier elimination.""
83378633e1 Add the attachment with the content of the file being analyzed.
bbb449dfa4 Issue 40931. Update inference constraint for T? to be non-nullable.
f1369d7896 Updated the invalid Example in num.dart
b22d3d6294 Add a P2 migration script for null safety migrator
db378a2f0d [ddc] let compiler generate instanceof and == of types directly.
617b78a014 [ddc] do not add null checks for parameters marked as @notNull
2ae10b14a3 [dart2js] Fix nullability of native methods.
b01cb58320 Revert "Re-land "[vm] Add type to _AsyncAwaitCompleter.start.""
043af430c1 Migraiton: Add function names to trace output.
005c5d7b52 Add an additional MMR "Max Rank 5" metric to the output of the completion_metrics.dart
52ad8dc2d2 Gather metrics on super invocations
f5dae48fac Add an ArgParser to completion_metrics.dart in the same manner as relevance_metrics.dart (https://dart-review.googlesource.com/c/sdk/+/138700)
a61e012e93 Migrate html tests using async_minitest and minitest
e3070b6f02 Add predicate to async_minitest
f8792406d8 Extract RemoveUnusedElement and RemoveUnusedField producers.
54e96f6ccf Add the `dynamic` keyword into additional missing portions of the AST (in method and constructor parameters) in the keyword_contributor.dart
8329bd7ca8 Do not check for '.analysis_options' for default options file in builder.
4f0fb8f9b0 Fix some syntax errors in the Dart code in the keyword_contributor_test.dart
4049ab54e4 Re-land "[vm] Add type to _AsyncAwaitCompleter.start."
8fb4645cae [dartdevc] Adding nnbd semantics for static and late fields.
fa2df01895 Null Safety preview: Fix description for uninitialized field
24c8021f03 Replace initialize() with declare().
9a62df57fa Fix a test to get the analyzer nnbd bot to pass
f17919b559 [nnbd/corelib] Fix performance regression in _SyncIterator.moveNext
6b71477d6e Add a host of server debugging options to dartdev migrate.
7617e327a1 [VM/Testing] - Turn on co19_2 legacy testing in NNBD bots.
4e79175ee8 Fix per-line highlighting in Null Safety preview tool
a4f6479998 [infra] Print details of unapproved (new or previous) failures in build failure message
eff1a9ff97 Re-land "[vm] Aggressive write-barrier elimination."
a629dbf073 Add a fix to inline a typedef
0f284647b1 [vm] Improve docs for Dart_LoadELF.
029c8f1cee [cfe] Use Supertype instead of InterfaceType in ClassHierarchyBuilder
e8c58a7a3d [CFE] Add ability to compare CompilerOptions
40507e7b13 [CFE] Tool for fasta -v statistics
7bdc910670 [infra] Remove unused bot script
7e815546ac Add the `dynamic` keyword into additional missing portions of the AST in the keyword_contributor.dart
7bc171483e Latest changes to the relevance metrics tool
3d0432eafc Add returnsNormally to async_minitest
6f47790fb6 [dartdevc] Optimize subtype check
4799f38767 [dartdevc] Optimize cast operation
c1cf29b2d4 [ddc] improve generated code for wrapType.isNormalized
6eae8db839 [ddc] remove dcall when accessing .type
de493465c8 Include 'dynamic' in the list of suggested keywords for type names, i.e. the 'dynamic' in "dynamic contents = ..."
80ed949678 [vm, reload] Don't drop unwind errors for isolates other than the first isolate in a group during a reload.
81c3208c10 [dart2js] Special case `null is T`.
de0fcd71d4 [dart2js] Assign the correct type to super tearoffs.
29d4b611fb Remove html_individual_config from indexeddb_1_test
9ba92779d6 Roll to latest package:watcher
8fd8fec185 [vm/aot] Add support to instance calls with unboxed parameters
2806ccacc7 [build] Update clang to 7e9747b50bcb1be28d4a3236571e8050835497a6.
972e045649 [analyzer] Fix windows paths again, and use ResourceProviderMixin.
e79f50098e Unify two error codes into one
2c5a56e7bb [vm] Disable late field init for constructor initialized fields
d3c0d59706 Disallow non-external generative JS constructors
60a81b0f51 Add hints to find equal elements in literal sets and maps
93ff9530aa Document difference between Stream.transform and Stream.map.
b0b8304b87 [Cleanup] Simplifies use_slow_path handling to remove unreachable asm.
b681bfd8d2 [VM] Fixes bad reuse/typing of temps in async transform invocations.
c1ed25dcf0 [CFE] Remove BulkCompiler
6facea722b [vm/ffi] Unbox Pointer data field - fix bytecode
7b6adc6083 Remove html_individual_config from remaining html tests
ce7fcff2ea Resolve type parameters to bounds when checking for implementing Iterable / Map.
a410f5bde1 [dart2js] rename null-safety flag and plumb through CFE
8ae984c54a [dart2js] Use a Symbol to access JavaScript Array Rti
a54a5eebb2 Remove html_individual_config from interactive_geolocation_test
69851f34c5 Remove the unused type hierarchy from the completion_metrics.dart
a2bf8dd351 Upgrade to dartdoc-0.30.2.
331067017f [vm] Fix late field store bug
9d76737487 Remove support for --emit-metadata in DDC
6e8efe2a15 Remove html_config from document_register_basic_test
a731b98113 [dart2js] Fix signature of identityHashCode.
3bab386570 Remove an unused shown name to remove a hint
ced0ceddd3 Rename an incorrectly named test class
739852d99d Migrate language_2/call to NNBD.
48c6180b46 [nnbd_migration] Hide hint insertion links after the migration is applied.
123a1ea517 [nnbd_migration] Fix 'apply edit' links.
3629658722 [nnbd_migration] Handle POST requests
5b0e439503 Fix windows path test/bots
5e66618175 Issue 40316. Verify only language version override locations at line starts.
110a29c9b3 Issue 40704. Support for ?[ in resolution.
55b4a240a4 [dart2js] Fix type promotion bug in static_type.dart.
a1992fec6d [ package:vm_service ] 4.0.0 release, Sentinels are now thrown, Future<dynamic> returns are now Future<Response>
bf5171cfd1 Add support for reporting how an accessed member related to the context type and extract feature computation
8d26e3df23 [vm] Don't insert CheckedSmi* instructions when the interface target suggests it's wrong.
f6b0a70230 Migrate language_2/await to NNBD.
1c64138e56 Migrate language_2/bool to NNBD.
1cf9d7a0c5 Revert "[vm] Add type to _AsyncAwaitCompleter.start."
2a8127dbfa [vm, gc] Take heap size into account when deciding when to start concurrent marking.
0649115b06 Rename VoidWithTypeParameters to VoidWithTypeArguments.
a74253987b Migration: add trace functionality to the preview tool.
d950783c07 [vm/ffi] Unify RawTypedData::data and Pointer::data
b406802981 [vm/ffi] Unbox Pointer data field
46bc5cd634 [vm] Support using different representations in ConvertUnboxedToUntagged
c135e2a7cd [vm/ffi] Reorder fields inside Pointer
4081235ac5 [vm] Support unboxed indices in indexed load and store
```
This reverts 7205c0e7b3e575a6dd5d14c0c22058ae40f261a3 and re-lands 8b77254d97416bb9b347a578410911ed09efbce3. The 8b77254d97416bb9b347a578410911ed09efbce3 was good. The screenshot changes were expected.
Fixes https://github.com/flutter/flutter/issues/32215