dart-sdk/tools/VERSION
Daco Harkes 6544c69e23 [vm/ffi] Convert Objects to Dart_Handles in FFI calls
This includes support for calling Dart_PropagateError in native code
when doing FFI calls, and catching uncaught exceptions with Dart_IsError
when doing FFI callbacks.

The support for Dart_PropagateError adds a catch entry to the FFI
trampoline, which prevents inlining these trampolines in AOT. This
regresses the FfiCall benchmarks by 1-2% in AOT.

In addition, Dart_PropagateError requires maintaining a bit whether we
entered native/VM code from generated code through FFI or not. That way
we can do the proper transition on the exception path. When entering
generated code, we store this bit on the stack, right after the entry
frame.

Design: http://go/dart-ffi-handles

Issue: https://github.com/dart-lang/sdk/issues/36858
Issue: https://github.com/dart-lang/sdk/issues/41319

Change-Id: Idfd7ff69132fb29cc730931a4113d914d4437396
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-mac-debug-x64-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-nnbd-linux-debug-x64-try,analyzer-nnbd-linux-release-try,front-end-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/145591
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-06-12 11:14:22 +00:00

40 lines
1.1 KiB
Plaintext

# This file is used by tools/utils.py to generate version strings.
# The numbers are changed as follows:
#
# * New release cycle has begun (i.e. stable release was just made):
# - increase MINOR by 1
# - set "PATCH 0"
# - set "PRERELEASE 0"
# - set "PRERELEASE_PATCH 0"
#
# * Doing a push-to-trunk from bleeding_edge:
# (The first push-to-trunk in the release cycle will set PRERELEASE to 0)
# - increase PRERELEASE by 1
# - set "PRERELEASE_PATCH 0"
#
# * Doing a cherry-pick to trunk:
# - increase PRERELEASE_PATCH by 1
#
# * Making a stable release (i.e. new stable branch):
# - set "PRERELEASE 0"
# - set "PRERELEASE_PATCH 0"
# The new stable release version will sort higher than the prereleases.
#
# * Making cherry-picks to stable channel
# - increase PATCH by 1
#
# * Making a change to the ABI:
# - increase ABI_VERSION by 1
#
# * Deprecating an old ABI version:
# - increase OLDEST_SUPPORTED_ABI_VERSION to the version that is supported.
#
CHANNEL be
MAJOR 2
MINOR 9
PATCH 0
PRERELEASE 0
PRERELEASE_PATCH 0
ABI_VERSION 37
OLDEST_SUPPORTED_ABI_VERSION 37