dart-sdk/pkg/macros
Jake Macdonald fac11694b4 Track async microtasks scheduled by macros, and ensure they have all completed before a macro returns.
Does not track certain events such as async I/O, but will refuse to execute the scheduled callbacks when those do complete.

Bug: https://github.com/dart-lang/sdk/issues/55426
Change-Id: Ie81100e9e4dbe49d050bad875cc9b6a65969863d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/370120
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Morgan :) <davidmorgan@google.com>
Auto-Submit: Jake Macdonald <jakemac@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2024-06-11 21:02:29 +00:00
..
lib add package:_macros (SDK vendored) and package:macros (pub published) 2024-03-26 18:40:00 +00:00
analysis_options.yaml
CHANGELOG.md Track async microtasks scheduled by macros, and ensure they have all completed before a macro returns. 2024-06-11 21:02:29 +00:00
CONTRIBUTING.md add package:_macros (SDK vendored) and package:macros (pub published) 2024-03-26 18:40:00 +00:00
LICENSE
OWNERS
pubspec.yaml Track async microtasks scheduled by macros, and ensure they have all completed before a macro returns. 2024-06-11 21:02:29 +00:00
README.md add package:_macros (SDK vendored) and package:macros (pub published) 2024-03-26 18:40:00 +00:00

☠☠ Warning: This package is experimental and may not be available in a future version of Dart. ☠☠

This package is for macro authors, and exposes the APIs necessary to write a macro. Specifically, it exports the private _macros SDK vendored package.

Macro authors

Macro authors can use normal constraints on this package, and should only import the package:macros/macros.dart file.

Note that the versions of this package are tied directly to your SDK version, so you won't be able to get new feature releases without updating your SDK.

Compilers and tools

This package also exposes some "private" sources (under lib/src), intended only for use by compilers and tools, in order to bootstrap and execute macros.

When depending on these "private" sources, a more narrow constraint should be used, which constraints to feature releases (which means patch versions until such time as this package goes to 1.0.0). For example, macros: ">=0.1.1 <0.1.2".