-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[vm/ffi] API: Pointer load and store as extension methods #37773
Comments
/cc @johnniwinther |
Putting this in Q3 stable since extension methods should be usable by then. |
@sjindel-google, how did you envision this? Instance methods shadow extension methods. For reference for |
I've made CLs for the API change and updating the tests, samples, and benchmarks. Feel free to leave comments on those. Note, we cannot land these CLs as long as the extension methods are behind a flag as experiment. |
Do we want to keep Pro for deleting them: We do not have deprecated stuff in the ffi 1.0 release. Maybe we should delete them right away. We have been upfront about API changes, and it will clean up the API and our internal implementation. What is your opinion @sjindel-google @mkustermann? |
I vote for breaking them, but we should land all our breaking changes for 1.0 at once. |
👍 Yeah, or we would break people on master and g3 multiple times. Edit: we can land the extension method additions early, but removing the old ones we should do all together. |
@johnniwinther has just turned on the flag by default. We are unblocked. 👍 |
/cc @lrhn for his view on |
Issue: #37773 Change-Id: I836d6305b613cf05590d872874f4517831be3e08 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-dartkb-linux-debug-simarm64-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-dartkb-linux-debug-x64-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-mac-debug-simdbc64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-reload-mac-release-simdbc64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-precomp-mac-release-simarm_x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118992 Reviewed-by: Samir Jindel <sjindel@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com>
I used the regex replaces documented on the `load` and `store` deprecated methods. I manually replaced some `.val` to `.ref` when a regex could not detect whether something was a primitive value or a struct. Issue: #37773 Change-Id: I3534b6dd00d9ac45fa1a11fe75c80fb3cccc07dc 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-dartkb-linux-debug-simarm64-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-dartkb-linux-debug-x64-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-mac-debug-simdbc64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-reload-mac-release-simdbc64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-precomp-mac-release-simarm_x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118993 Reviewed-by: Samir Jindel <sjindel@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com> Commit-Queue: Daco Harkes <dacoharkes@google.com>
These methods would be better exposed as extension methods:
Pointer.load
(this issue)Pointer.store
(this issue)Pointer.asExternalTypedData
(but keep original) [vm/ffi] API: Pointer.asExternalTypedData as extension method #38610Struct.addressOf
[vm/ffi] API: Struct.addressOf as extension method #38611update from @dcharkes: I split this issue into three to keep the CL sizes manageable.
The text was updated successfully, but these errors were encountered: