Find a file
Daco Harkes 4e2343c290 [vm/ffi] Introduce Allocator API
Introduces the Allocator API in `dart:ffi`.

This CL does not yet roll `package:ffi` to use `Allocator`, because that
breaks the checked in Dart in Fluter in g3. Instead, this coppies
`_MallocAllocator` from `package:ffi` into the ffi tests for testing.

This CL does not yet migrate off `allocate` and `free` in the SDK. That
is done in a dependent CL.

Issue: https://github.com/dart-lang/sdk/issues/44621
Issue: https://github.com/dart-lang/sdk/issues/38721

TEST=tests/ffi/allocator_test.dart
TEST=tests/ffi/calloc_test.dart
TEST=tests/ffi/vmspecific_static_checks_test.dart

Change-Id: I173e213a750b8b3f594bb8d4fc72575f2b6b91f7
Cq-Include-Trybots: luci.dart.try:vm-precomp-ffi-qemu-linux-release-arm-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,analyzer-nnbd-linux-release-try,front-end-linux-release-x64-try,front-end-nnbd-linux-release-x64-try,benchmark-linux-try,dart-sdk-linux-try,pkg-linux-release-try,vm-ffi-android-release-arm-try,vm-ffi-android-release-arm64-try,vm-kernel-nnbd-win-debug-x64-try,vm-kernel-win-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/177705
Reviewed-by: Clement Skau <cskau@google.com>
2021-01-13 17:04:08 +00:00
.dart_tool [ package:vm_service] Output null-safe code from package:vm_service code generator 2021-01-08 21:19:38 +00:00
.github Remove obsolete dartfix build target and scripts 2020-11-13 09:18:36 +00:00
benchmarks [benchmark] BigIntParsePrint: fix lints 2021-01-11 17:42:06 +00:00
build Revert "[vm/build] Workaround for ld 2.19 crash on ARM" 2020-12-11 21:49:11 +00:00
client
docs Corrected the format for VM experiment flag 2020-10-21 16:09:38 +00:00
pkg [vm/ffi] Introduce Allocator API 2021-01-13 17:04:08 +00:00
runtime [VM] Adds Future.then and Future.catchError stack unwinding. 2021-01-13 08:00:14 +00:00
samples [vm/ffi] Fuchsia FFI testing package 2020-12-10 12:15:17 +00:00
samples-dev/swarm Opt out some files from null safety. 2020-10-12 22:15:42 +00:00
samples_2 [vm/ffi] Fuchsia FFI testing package 2020-12-10 12:15:17 +00:00
sdk [vm/ffi] Introduce Allocator API 2021-01-13 17:04:08 +00:00
tests [vm/ffi] Introduce Allocator API 2021-01-13 17:04:08 +00:00
third_party [wasm] Clean up native objects using finalizers 2020-11-24 21:12:09 +00:00
tools [dart fix] test flutter's use of data driven fixes 2021-01-12 00:58:40 +00:00
utils [ VM / CLI ] Run DartDev isolate from snapshot when possible 2021-01-11 19:41:50 +00:00
.clang-format
.gitattributes Migrate language_2/string to null safety. 2020-06-17 21:14:43 +00:00
.gitconfig
.gitignore Adds a few more generated files to .gitignore. 2020-10-22 11:42:09 +00:00
.gn
.mailmap
.packages Remove the --completion-model flag from the analysis server. 2020-11-16 03:31:18 +00:00
.style.yapf
.vpython
AUTHORS
BUILD.gn [vm/ffi] Fuchsia FFI testing package 2020-12-10 12:15:17 +00:00
CHANGELOG.md Uri.https and Uri.http constructors queryParams type 2021-01-11 15:22:06 +00:00
codereview.settings
CONTRIBUTING.md Fix a number of outdated URLs across a number of markdown files 2020-05-29 09:23:45 +00:00
DEPS Update to latest package:http 2021-01-11 18:52:56 +00:00
LICENSE
PATENT_GRANT
PRESUBMIT.py Revert "Require that all changes to VM have TEST line" 2020-10-30 15:28:41 +00:00
README.dart-sdk Add dart2native to sdk README 2020-01-20 09:32:58 +00:00
README.md Update README.md 2021-01-11 23:51:20 +00:00
sdk_args.gni [build] Automatically rebuild sdk_hash when the Git commit changes. 2020-07-09 21:12:15 +00:00
WATCHLISTS [dart2js] 20 dart2js tests ported to nnbd #1. 2020-06-26 15:21:42 +00:00

Dart

A client-optimized language for fast apps on any platform

Dart is:

  • Optimized for UI: Develop with a programming language specialized around the needs of user interface creation.

  • Productive: Make changes iteratively: use hot reload to see the result instantly in your running app.

  • Fast on all platforms: Compile to ARM & x64 machine code for mobile, desktop, and backend. Or compile to JavaScript for the web.

Dart's flexible compiler technology lets you run Dart code in different ways, depending on your target platform and goals:

  • Dart Native: For programs targeting devices (mobile, desktop, server, and more), Dart Native includes both a Dart VM with JIT (just-in-time) compilation and an AOT (ahead-of-time) compiler for producing machine code.

  • Dart Web: For programs targeting the web, Dart Web includes both a development time compiler (dartdevc) and a production time compiler (dart2js).

Dart platforms illustration

License & patents

Dart is free and open source.

See LICENSE and PATENT_GRANT.

Using Dart

Visit dart.dev to learn more about the language, tools, and to find codelabs.

Browse pub.dev for more packages and libraries contributed by the community and the Dart team.

Our API reference documentation is published at api.dart.dev, based on the stable release. (We also publish docs from our beta and dev channels, as well as from the primary development branch).

Building Dart

If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.

There are more documents on our wiki.

Contributing to Dart

The easiest way to contribute to Dart is to file issues.

You can also contribute patches, as described in Contributing.