dart-sdk/pkg
Daco Harkes c33dad37e5 Revert "Reland "[vm/ffi] Disallow Pointers and structs in finalizers and expandos""
This reverts commit 3f0ad61daa.

Reason for revert: Conflicts with https://dart-review.googlesource.com/c/sdk/+/194765

Original change's description:
> Reland "[vm/ffi] Disallow `Pointer`s and structs in finalizers and expandos"
>
> `Dart_NewWeakPersistentHandle` and `Dart_NewFinalizableHandle` in
> `dart_api.h` do no longer accept `Pointer`s and subtypes of `Struct`s
> as values passed in to the `object` parameter.
>
> Expandos no longer accept `Pointer`s and subtypes of `Struct`s
> as values passed in to the `object` parameter.
>
> Cleans up unused object_store->ffi_struct_class.
>
> Closes: https://github.com/dart-lang/sdk/issues/45071
> Breaking change: https://github.com/dart-lang/sdk/issues/45072
>
> TEST=vm/cc/DartAPI_FinalizableHandleErrors
> TEST=vm/cc/DartAPI_WeakPersistentHandleErrors
> TEST=tests/ffi(_2)/expando_test.dart
>
> Change-Id: I9af6d0173db60614091068c218391f73756c135f
> Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-debug-x64-try
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195061
> Reviewed-by: Martin Kustermann <kustermann@google.com>
> Commit-Queue: Daco Harkes <dacoharkes@google.com>

TBR=kustermann@google.com,dacoharkes@google.com

Change-Id: I90064b6b73155a43f37388f987c6b29f72ce9770
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195076
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2021-04-13 15:05:07 +00:00
..
_fe_analyzer_shared [cfe] Add id testing for inferred type arguments 2021-04-13 09:10:38 +00:00
_js_interop_checks Update LICENSE 2021-04-07 10:28:38 +00:00
analysis_server Migrate tests for data-driven fixes 2021-04-13 14:00:11 +00:00
analysis_server_client Update LICENSE 2021-04-07 10:28:38 +00:00
analyzer [sdk] Bump version to 2.14 2021-04-13 12:47:27 +00:00
analyzer_cli Remove unnecessary imports from analyzer_plugin, analysis_server, analyzer_cli, test_runner 2021-04-08 19:02:31 +00:00
analyzer_plugin Prepare to publish analyzer_plugin 0.6.0 2021-04-09 00:47:00 +00:00
analyzer_utilities [sdk] Bump version to 2.13 2021-02-04 12:10:17 +00:00
async_helper Update LICENSE 2021-04-07 10:28:38 +00:00
build_integration Update LICENSE 2021-04-07 10:28:38 +00:00
compiler [sdk] Bump version to 2.14 2021-04-13 12:47:27 +00:00
dart2js_tools
dart2native Add --[no-]sound-null-safety option to dart2native and dart compile exe 2021-01-26 19:16:30 +00:00
dart_internal Update LICENSE 2021-04-07 10:28:38 +00:00
dartdev Update LICENSE 2021-04-07 10:28:38 +00:00
dds Update LICENSE 2021-04-07 10:28:38 +00:00
dev_compiler [ddc] Fix sourcemap on debugger statements 2021-04-07 18:04:27 +00:00
diagnostic Update LICENSE 2021-04-07 10:28:38 +00:00
expect Update LICENSE 2021-04-07 10:28:38 +00:00
front_end [cfe] Invalid empty return statements in const function invocations. 2021-04-13 14:49:06 +00:00
frontend_server Update LICENSE 2021-04-07 10:28:38 +00:00
js Update LICENSE 2021-04-07 10:28:38 +00:00
js_ast Update LICENSE 2021-04-07 10:28:38 +00:00
js_runtime [dart2js] make js_runtime a proper package 2021-01-25 22:39:23 +00:00
kernel [cfe] Introduce ExtensionType into isSubtypeOf 2021-04-13 13:05:57 +00:00
language_versioning_2.7_test
meta Update LICENSE 2021-04-07 10:28:38 +00:00
modular_test Prepare for switching to null safe package_config 2021-01-21 05:04:33 +00:00
native_stack_traces Update LICENSE 2021-04-07 10:28:38 +00:00
nnbd_migration Update LICENSE 2021-04-07 10:28:38 +00:00
scrape remove unnecessary parens in string interp 2021-03-25 22:24:34 +00:00
smith [infra] Add new compressed architectures to the test matrix. 2021-02-04 17:44:37 +00:00
sourcemap_testing Update List constructor documentation, deprecate constructor. 2020-12-07 16:20:28 +00:00
status_file Don't truncate command output in the test runner. 2021-04-07 23:42:38 +00:00
telemetry Update LICENSE 2021-04-07 10:28:38 +00:00
test_runner Remove unnecessary imports from analyzer_plugin, analysis_server, analyzer_cli, test_runner 2021-04-08 19:02:31 +00:00
testing [CFE] Make fuzz testing work also when not skipping VM 2021-03-22 10:12:52 +00:00
vm Revert "Reland "[vm/ffi] Disallow Pointers and structs in finalizers and expandos"" 2021-04-13 15:05:07 +00:00
vm_service Update LICENSE 2021-04-07 10:28:38 +00:00
vm_snapshot_analysis Update LICENSE 2021-04-07 10:28:38 +00:00
wasm Update LICENSE 2021-04-07 10:28:38 +00:00
.gitignore
BUILD.gn
pkg.status [test] Apply simarm64 status file entries to simarm64c. 2021-02-25 21:18:02 +00:00
README.md Add additional validations to the pkg/ package pubspecs. 2020-12-02 17:27:18 +00:00

Package validation

The packages in pkg/ are automatically validated on the LUCI CI bots. The validation is largely done by the tools/package_deps package; it can be tested locally via:

dart tools/package_deps/bin/package_deps.dart

Packages which are published

There are several packages developed in pkg/ which are published to pub. Validation of these packages is particularly important because the pub tools are not used for these packages during development; we get our dependency versions from the DEPS file. Its very easy for the dependencies specified in a package's pubspec file to get out of date wrt the packages and versions actually used.

In order to better ensure we're publishing correct packages, we validate some properties of the pubspec files on our CI system. These validations include:

  • that the dependencies listed in the pubspec are used in the package
  • that all the packages used by the source are listed in the pubspec
  • that we don't use relative path deps to pkg/ or third_party/ packages

Packages which are not published

For packages in pkg/ which we do not intend to be published, we put the following comment in the pubspec.yaml file:

# This package is not intended for consumption on pub.dev. DO NOT publish.
publish_to: none

These pubspecs are still validated by the package validation tool. The contents are more informational as the pubspecs for these packages are not consumed by the pub tool or ecosystem.

We validate:

  • that the dependencies listed in the pubspec are used in the package
  • that all the packages used by the source are listed in the pubspec
  • that a reference to a pkg/ package is done via a relative path dependency