Find a file
Daco Harkes 862e473c2e [vm] Native API DL: dllexport on Windows
`DART_EXTERN` in `dart_api_dl.h` was missing `__declspec(dllexport)` on
Windows, causing `Dart_InitializeApiDL` to not be visible.

Using `DART_EXPORT` instead doesn't work because the definitions added
by `DART_API_ALL_DL_SYMBOLS` do not support having a 'used' attribute.

Instead, define a `DART_EXPORT_DL` for these which is identical but
without the 'used' attribute.

Note that the precompiler `DART_SHARED_LIB` macro must be defined for
`__declspec(dllexport)` to be part of `DART_EXPORT`/`DART_EXPORT_DL`.

Also fixes `#define DART_EXTERN_C` to be `extern` in C. Without this,
the linker will see duplicate symbols for things `DART_EXPORT`ed when
the `dart_api_dl.h` is included in C files.

TEST=SDK build on all OSes

Change-Id: I0af1d46d22409599203d9be310d54bd16c6a5b59
Cq-Include-Trybots: luci.dart.try:dart-sdk-linux-try,dart-sdk-mac-arm64-try,dart-sdk-mac-try,dart-sdk-win-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215550
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2021-10-06 07:42:44 +00:00
.dart_tool Remove "resource" package from DEPS. 2021-10-04 18:33:47 +00:00
.github "dartfmt" -> "dart format" in issue template. 2021-05-19 00:39:43 +00:00
benchmarks Remove dartfmt from SDK artifact size benchmark. 2021-10-01 15:45:53 +00:00
build [build] Detect the host architecture of an ARM64 Mac as ARM64 even through Rosetta. 2021-09-28 17:44:32 +00:00
client Remove old annotated_steps buildbot scripts and dispatcher 2017-05-23 16:17:02 +02:00
docs master branch to main 2021-09-15 06:22:23 +00:00
pkg [cfe] Remove UnresolvedType 2021-10-06 07:39:34 +00:00
runtime [vm] Native API DL: dllexport on Windows 2021-10-06 07:42:44 +00:00
samples [vm] Remove support for dart-ext: imports 2021-09-02 14:14:35 +00:00
samples-dev/swarm [infra] Migrate scripts to python3 2021-04-15 10:10:20 +00:00
samples_2 [vm] Remove support for dart-ext: imports 2021-09-02 14:14:35 +00:00
sdk Several fixes to the core lib docs. 2021-10-05 21:29:02 +00:00
tests [cfe] Refactor detection of instance type variable access in static context 2021-10-05 11:58:04 +00:00
third_party rev the build of devtools; add a 'dart devtools' command 2021-08-20 16:25:24 +00:00
tools [dart:html] setAttribute value should be Object 2021-10-05 20:08:41 +00:00
utils Remove "dartfmt" entrypoint from the SDK. 2021-10-04 18:40:57 +00:00
.clang-format VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
.gitattributes [web] rename suite dart2js -> web. 2021-02-04 23:11:32 +00:00
.gitconfig [infra] Add documentation to .gitconfig 2018-06-11 18:24:16 +00:00
.gitignore [vm] Remove traces of LLVM backend 2021-03-09 20:37:20 +00:00
.gn [infra] Migrate scripts to python3 2021-04-15 10:10:20 +00:00
.mailmap fix my name in .mailmap 2018-09-11 01:45:52 +00:00
.packages Drop http_throttle from .packages 2021-08-26 21:16:46 +00:00
.style.yapf Mass format python with yapf 2019-08-05 20:34:31 +00:00
.vpython [infra] Add .vpython spec to fix gsutil on the bots (#31065) 2018-10-11 15:11:35 +00:00
AUTHORS [runtime/vm] ARM64: Support unaligned memory accesses for regex. 2019-10-15 20:11:40 +00:00
BUILD.gn Remove "dartfmt" entrypoint from the SDK. 2021-10-04 18:40:57 +00:00
CHANGELOG.md Add changelog entry for TLS change 2021-10-05 13:25:30 +00:00
codereview.settings [infra] Default presubmits to use python3 2021-08-24 08:20:47 +00:00
CONTRIBUTING.md master branch to main 2021-09-15 06:22:23 +00:00
DEPS Roll DevTools to version 2.7.0 2021-10-05 15:24:41 +00:00
LICENSE Update LICENSE 2021-04-08 07:57:10 +00:00
PATENT_GRANT Rename patent file 2019-08-16 12:03:17 +00:00
PRESUBMIT.py Remove references to dartfmt in various comments and docs. 2021-10-01 00:56:14 +00:00
README.dart-sdk Update readme 2021-10-05 13:46:41 +00:00
README.md master => main 2021-09-10 08:02:49 +00:00
sdk_args.gni Allow configuring the destination of the SDK in the build output directory 2021-06-29 18:45:29 +00:00
SECURITY.md Add a security policy for the Dart SDK 2021-10-01 13:01:31 +00:00
WATCHLISTS [dart2js] More shared_messages.dart cleanup 2021-09-22 19:20:54 +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.