Find a file
Matthew Dempsky b11f2d8e69 [vm] Implement VirtualMemory::Allocate using AllocateAligned
Instead of implementing separate aligned and unaligned memory
allocation primitives for each OS, just change the unaligned allocator
into a wrapper around the aligned primitive.

While here, we can optimize the AllocateAligned logic slightly: if we
want an N-page-aligned allocation, we only need to increase the
allocation size by N-1 pages instead of N.

Notably, this means 1-page-aligned allocations don't require any extra
alignment pages, so the new logic behaves identically as before on
Android, Fuchsia, Linux, and macOS.

On Windows, it behaves slightly differently only in that unaligned
requests used to be handled as a single VirtualAlloc call with
MEM_RESERVE | MEM_COMMIT, but now they're handled as two separate
calls (reserve *then* commit). Naively, I don't expect this matters in
practice, but if it does, we can always add a fast path for
alignment==page_size_ without affecting the OS-independent API.

Change-Id: I42b2cf5dfc6e137546d8acfb6cc8939a01687948
Reviewed-on: https://dart-review.googlesource.com/c/91081
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-01-25 01:22:20 +00:00
.github Fix probot configuration to point to the "needs-info" label. 2018-12-20 21:26:57 +00:00
build [build] Enable mitigations for Cortex-A53 Erratum #843419 bug. 2019-01-15 16:50:33 +00:00
client Remove old annotated_steps buildbot scripts and dispatcher 2017-05-23 16:17:02 +02:00
docs Performed copyedits proposed by Patrice Chalin 2019-01-24 12:42:13 +00:00
pkg Update parser to support simple if/else control flow in literal lists, sets, and maps 2019-01-24 22:22:50 +00:00
runtime [vm] Implement VirtualMemory::Allocate using AllocateAligned 2019-01-25 01:22:20 +00:00
samples Revert "[gardening] mark sample_extension_test as error" 2018-12-10 19:37:33 +00:00
samples-dev fix some typos 2018-10-10 19:15:30 +00:00
sdk Include MessagePort in convertions for workers 2019-01-25 01:00:35 +00:00
tests Clean up co19_2 Kernel status files 2019-01-24 09:55:03 +00:00
third_party [infra] Upgrade gsutil to version 4.34 2019-01-22 16:58:58 +00:00
tools [infra] Fix expected results of multitests, drop checked-only results. 2019-01-24 12:44:09 +00:00
utils [dartdevc] remove unused dartdevk binary, fixes #35483 2019-01-04 17:19:52 +00:00
.clang-format VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
.gitattributes Remove the Dart 1 tests. 2018-10-11 23:45:18 +00:00
.gitconfig [infra] Add documentation to .gitconfig 2018-06-11 18:24:16 +00:00
.gitignore [tools] repurpose generate_compile_commands.py to generate_idefiles.py 2019-01-04 09:05:23 +00:00
.gn Starting work on full GN build 2016-09-23 07:47:36 -07:00
.mailmap fix my name in .mailmap 2018-09-11 01:45:52 +00:00
.packages Remove four packages from DEPS 2019-01-24 21:40:58 +00:00
.vpython [infra] Add .vpython spec to fix gsutil on the bots (#31065) 2018-10-11 15:11:35 +00:00
AUTHORS Add Cristian Almstrand to AUTHORS 2015-07-16 09:51:56 -07:00
BUILD.gn Revert "[vm] Prevent access to non-annotated members through native API." 2019-01-23 20:37:22 +00:00
CHANGELOG.md Adjust dart2js notes 2019-01-24 20:22:41 +00:00
codereview.settings Update codereview.settings to Gerrit (dart-review.googlesource.com) 2017-09-04 12:52:09 +00:00
CONTRIBUTING.md Change wiki link to follow contents moved. 2019-01-12 18:46:22 +00:00
dartdoc_options.yaml Add a 'Core' category for doc generation. 2018-06-07 14:47:41 +00:00
DEPS Remove four packages from DEPS 2019-01-24 21:40:58 +00:00
LICENSE Remove the Dromaeo and TodoMVC samples. 2016-01-11 13:09:26 -08:00
PATENTS Move LICENSE, AUTHORS, PATENTS into the dart directory. 2014-02-10 06:48:47 +00:00
PRESUBMIT.py Don't check formatting of Front-End test cases 2019-01-18 13:18:55 +00:00
README.dart-sdk remove docgen from the sdk 2015-09-18 13:18:10 -07:00
README.md [gardening] Whitespace change to trigger bots. 2017-04-28 10:08:58 -07:00
WATCHLISTS [vm/compiler] Add VM Compiler Team WATCHLIST 2018-11-23 10:24:02 +00:00

Dart

Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.

Using Dart

Visit the dartlang.org to learn more about the language, tools, getting started, and more.

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

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.

License & patents

See LICENSE and PATENTS.