Page MenuHomePhabricator

arphaman (Alex Lorenz)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 25 2014, 4:17 PM (364 w, 1 d)

Recent Activity

Today

arphaman added a comment to D104462: [clang][lex] Add minimizer option to pad the output to the input size.

I agree with Duncan, it would be good to avoid modifying the existing test cases if possible

Thu, Jun 17, 1:50 PM · Restricted Project

Yesterday

arphaman accepted D104348: [index] Fix performance regression with indexing macros.

Thanks, LGTM!

Wed, Jun 16, 10:07 AM · Restricted Project

Fri, Jun 11

arphaman committed rG22dea6923155: [clang][ObjC] allow the use of NSAttributedString * argument type with format… (authored by arphaman).
[clang][ObjC] allow the use of NSAttributedString * argument type with format…
Fri, Jun 11, 1:25 PM

Thu, Jun 10

arphaman accepted D104033: [clang][deps] Move enabling system header deps from `clang-scan-deps` to `DependencyScanning` library.

Thanks, LGTM

Thu, Jun 10, 8:58 AM · Restricted Project
arphaman accepted D104031: [clang][deps] Move injection of `-Wno-error` from `clang-scan-deps` to `DependencyScanning` library.

Thanks, LGTM

Thu, Jun 10, 8:56 AM · Restricted Project
arphaman accepted D104030: [clang][deps] Move invocation adjustments from `clang-scan-deps` to `DependencyScanning` library.
Thu, Jun 10, 8:45 AM · Restricted Project
arphaman accepted D104012: [clang][deps] Move stripping of diagnostic serialization from `clang-scan-deps` to `DependencyScanning` library.
Thu, Jun 10, 8:43 AM · Restricted Project

Mon, May 24

arphaman added a comment to D86881: Make -fvisibility-inlines-hidden apply to static local variables in inline functions on Darwin.

Hey, thanks for following up on this PR. I've done some more digging and I think we can remove this Darwin-specific workaround in the near future. I'm hoping to provide an update in the next few weeks.

Mon, May 24, 11:41 AM · Restricted Project
arphaman accepted D102338: [Sema] Always search the full function scope context if a potential availability violation is encountered.

I think this is good to go, I haven't observed any issues with this patch so far in my testing. LGTM

Mon, May 24, 11:23 AM · Restricted Project

Wed, May 19

arphaman added a reviewer for D102633: [clang-scan-deps] Improvements to thread usage: aganea.

It might be good for @aganea to take a look as well.

Wed, May 19, 2:35 PM · Restricted Project, Restricted Project
arphaman committed rG50be48b0f3c8: [clang][ObjC] Allow different availability annotation on a method (authored by arphaman).
[clang][ObjC] Allow different availability annotation on a method
Wed, May 19, 12:14 PM
arphaman closed D102459: [clang][ObjC] Allow different availability annotation on a method when implementing an optional protocol requirement.
Wed, May 19, 12:14 PM · Restricted Project

May 14 2021

arphaman updated the diff for D102459: [clang][ObjC] Allow different availability annotation on a method when implementing an optional protocol requirement.

Do not apply this to 'deprecated' availability annotations - the user has no way to check for deprecated as respondsToSelector will still return true even if the class has marked the method as deprecated.

May 14 2021, 12:37 PM · Restricted Project
arphaman added inline comments to D102494: [Clang,Driver] Default to Darwin_libsystem_m veclib on iOS based targets..
May 14 2021, 11:01 AM · Restricted Project
arphaman accepted D102489: [Clang,Driver] Add -fveclib=Darwin_libsystem_m support..
May 14 2021, 8:52 AM · Restricted Project
arphaman added inline comments to D102489: [Clang,Driver] Add -fveclib=Darwin_libsystem_m support..
May 14 2021, 7:34 AM · Restricted Project
arphaman added inline comments to D102494: [Clang,Driver] Default to Darwin_libsystem_m veclib on iOS based targets..
May 14 2021, 7:33 AM · Restricted Project
arphaman added inline comments to D102489: [Clang,Driver] Add -fveclib=Darwin_libsystem_m support..
May 14 2021, 7:29 AM · Restricted Project

May 13 2021

arphaman requested review of D102459: [clang][ObjC] Allow different availability annotation on a method when implementing an optional protocol requirement.
May 13 2021, 8:54 PM · Restricted Project
arphaman added a comment to D102338: [Sema] Always search the full function scope context if a potential availability violation is encountered.

Thanks for the patch! I think the new checking semantics behavior provided by this patch are fine and match what the Swift compiler allows in the if #available blocks in Swift. I will do some additional testing tomorrow but I'm hoping I can approve your patch in the next few days.

May 13 2021, 8:46 PM · Restricted Project

May 4 2021

arphaman accepted D101682: [Driver] Fix `ToolChain::getCompilerRTPath()` to return the correct path on Apple platforms..
May 4 2021, 11:25 AM · Restricted Project
arphaman accepted D101682: [Driver] Fix `ToolChain::getCompilerRTPath()` to return the correct path on Apple platforms..

LGTM, the only suggestion I have is below.

May 4 2021, 9:05 AM · Restricted Project

May 3 2021

arphaman committed rG2669abaecfc4: [clang][CodeGen] Use llvm::stable_sort for multi version resolver options (authored by arphaman).
[clang][CodeGen] Use llvm::stable_sort for multi version resolver options
May 3 2021, 8:07 PM

Apr 30 2021

arphaman added inline comments to D101682: [Driver] Fix `ToolChain::getCompilerRTPath()` to return the correct path on Apple platforms..
Apr 30 2021, 8:12 PM · Restricted Project
arphaman committed rG8fc5f07fc0ae: [clang][driver][darwin] use the deployment target version as the SDK version (authored by arphaman).
[clang][driver][darwin] use the deployment target version as the SDK version
Apr 30 2021, 7:02 PM

Apr 29 2021

arphaman added a comment to D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

Recommitted with a fix for the M1 openMP issue:

Apr 29 2021, 3:03 PM · Restricted Project
arphaman added a comment to D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

We have M1 CI running internally but it's post commit only right now

Which tests is it running?

Apr 29 2021, 3:02 PM · Restricted Project
arphaman added a reverting change for rGab0df6c0346e: Revert "[clang][driver] Use the provided arch name for a Darwin target triple": rG6b938d2ead2c: Recommit "[clang][driver] Use the provided arch name for a Darwin target triple.
Apr 29 2021, 3:01 PM
arphaman committed rG6b938d2ead2c: Recommit "[clang][driver] Use the provided arch name for a Darwin target triple (authored by arphaman).
Recommit "[clang][driver] Use the provided arch name for a Darwin target triple
Apr 29 2021, 3:01 PM

Apr 27 2021

arphaman added a comment to D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

It appears that your bot is running on a Mac with M1 is that correct? Which OS do you have installed? Thanks

Correct, it's an M1 Mini. I had to get check-clang and check-llvm to pass on M1 (PR46647, PR46644) so it looks like nobody else is running this config (why not?). check-builtins is e.g. still failing (PR49918). Kind of on that note, the clang y'all ship with Xcode is > 5% slower than it needs to be due to you apparently building it with profiles collected on an intel machine instead of with profiles collected on an arm machine (data: https://bugs.chromium.org/p/chromium/issues/detail?id=1103322#c34 There's a prebuilt binary at http://commondatastorage.googleapis.com/chromium-browser-clang/Mac_arm64/clang-llvmorg-13-init-7296-ga749bd76-2.tgz with profiles collected on arm that is ~ 12.5% faster than Xcode's clang, see comment 29 on that same crbug).

The bot is running macOS 11.3 IIRC.

Apr 27 2021, 8:59 AM · Restricted Project

Apr 26 2021

arphaman committed rG2509f9fbad0d: [clang] Don't crash when loading invalid VFS for the module dep collector (authored by arphaman).
[clang] Don't crash when loading invalid VFS for the module dep collector
Apr 26 2021, 5:06 PM
arphaman added a reverting change for rG6cc62043c8bf: [clang][driver] Use the provided arch name for a Darwin target triple: rGab0df6c0346e: Revert "[clang][driver] Use the provided arch name for a Darwin target triple".
Apr 26 2021, 2:58 PM
arphaman committed rGab0df6c0346e: Revert "[clang][driver] Use the provided arch name for a Darwin target triple" (authored by arphaman).
Revert "[clang][driver] Use the provided arch name for a Darwin target triple"
Apr 26 2021, 2:58 PM
arphaman added a comment to D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

Reverted in ab0df6c0346e for now.

Apr 26 2021, 2:58 PM · Restricted Project
arphaman added a reverting change for D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target: rGab0df6c0346e: Revert "[clang][driver] Use the provided arch name for a Darwin target triple".
Apr 26 2021, 2:58 PM · Restricted Project
arphaman added a comment to D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

Looks like this breaks tests on mac/arm (by making two unexpectedly pass): http://45.33.8.238/macm1/8249/step_7.txt

Please take a look, and please revert for now if it takes a while to fix.

Apr 26 2021, 2:55 PM · Restricted Project
arphaman added a comment to D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

Looks like this breaks tests on mac/arm (by making two unexpectedly pass): http://45.33.8.238/macm1/8249/step_7.txt

Please take a look, and please revert for now if it takes a while to fix.

Apr 26 2021, 2:51 PM · Restricted Project
arphaman committed rG6cc62043c8bf: [clang][driver] Use the provided arch name for a Darwin target triple (authored by arphaman).
[clang][driver] Use the provided arch name for a Darwin target triple
Apr 26 2021, 11:32 AM
arphaman closed D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.
Apr 26 2021, 11:32 AM · Restricted Project
arphaman added a comment to D45639: [Driver] Support default libc++ library location on Darwin.

FYI I had to revert this change again because it broke ubsan build. The problem is that ubsan for Darwin is built as universal shared library and it links against libc++abi, but we currently don't support building libc++ and libc++abi as universal binaries in the runtimes build. That's something we'll need to address first before we can reland this change. I expect that if we resolve that issue, it would also address the lldb use case although it sounds like that's no longer an issue.

Apr 26 2021, 10:27 AM · Restricted Project

Apr 20 2021

arphaman added a reverting change for rG92146ce399cd: Re-fix _lrotl/_lrotr to always take Long, no matter the platform.: D100914: [clang] Revert "Re-fix _lrotl/_lrotr to always take Long, no matter the platform.".
Apr 20 2021, 4:49 PM
arphaman requested review of D100914: [clang] Revert "Re-fix _lrotl/_lrotr to always take Long, no matter the platform.".
Apr 20 2021, 4:49 PM · Restricted Project
arphaman added a comment to D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.
In D100807#2702675, @ab wrote:

This sounds nice! One idea, maybe more dangerous, not sure which is better: in setTripleTypeForMachOArchName, we already have a couple setArchName calls, I think that's why arm64e is left alone in the aarch64-cpus.c test. Maybe we can do the setArchName call for every arch there?

Apr 20 2021, 4:13 PM · Restricted Project
arphaman updated the diff for D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.

Updated with Ahmed's suggestion.

Apr 20 2021, 4:11 PM · Restricted Project

Apr 19 2021

arphaman requested review of D100807: [clang][driver] Use the canonical Darwin arch name when printing out the triple for a Darwin target.
Apr 19 2021, 6:23 PM · Restricted Project
arphaman added a comment to D98450: [clang] store an identifer instead of declref for ns_error_domain attribute.

Sorry, getting back to this only now.

That's ok for me. I'd suggest to wait for Aaron's feedback, because IIRC it was his suggestion in the first place to go to declref.

I have the same concerns with this patch as I did with the initial one, see https://reviews.llvm.org/D84005#inline-775391 -- basically, we're doing a lookup here in SemaDeclAttr.cpp and saying "I found the identifier, everything's good", then storing the identifier into the attribute so we can look it up again later, at which point looking up the identifier may find something totally unrelated to what was found in SemaDeclAttr.cpp.

The attribute with declref is incompatible with Apple's SDKs, as the declref at the point of use in the attribute might not be available due to the availability annotations on the domain declaration.

Can you help me to understand why this isn't the expected behavior? If you name something that's not available, it seems surprising to me that it would then be available but only as one particular attribute argument.

Your argument makes sense. The problem right now is that clang doesn't allow the name to be used even when the user marks up availability correctly trying to guard the use of the declaration. This stems from the combination of this macro in Foundation:

#define NS_ERROR_ENUM(_type, _name, _domain)  \
  enum _name : _type _name; enum __attribute__((ns_error_domain(_domain))) _name : _type

and the fact that when the user uses it like this:

API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macos, tvos)
typedef NS_ERROR_ENUM(NIErrorDomain, NIErrorCode) {
    NIErrorA = 1,
};

which is equivalent to:

__attribute__((availability(ios,introduced=14.0))) __attribute__((availability(macos,unavailable))) __attribute__((availability(tvos,unavailable)))
NSErrorDomain const NIErrorDomain;

__attribute__((availability(ios,introduced=14.0))) __attribute__((availability(macos,unavailable))) __attribute__((availability(tvos,unavailable)))
typedef enum NIErrorCode : NSInteger NIErrorCode; enum __attribute__((ns_error_domain(NIErrorDomain))) NIErrorCode : NSInteger {
     NIErrorA = 1
};

In this case clang doesn't know about availability on the NIErrorDomain declaration as it's placed on the typedef, so it reports the diagnostic that NIErrorDomain is unavailable for macOS, even though from users perspective the use is guarded correctly by the API_UNAVAILABLE(macos, tvOS) before the NS_ERROR_ENUM macro.

Do you think in this case it would make sense to try to teach clang to reason about this by special casing the fact that the enum declaration should check if the typedef is annotated with the correct availability?

Apr 19 2021, 4:18 PM
arphaman added a comment to D98450: [clang] store an identifer instead of declref for ns_error_domain attribute.

Sorry, getting back to this only now.

Apr 19 2021, 4:04 PM

Apr 14 2021

arphaman committed rGc1554f32e3b3: [clang][FileManager] Support empty file name in getVirtualFileRef for… (authored by arphaman).
[clang][FileManager] Support empty file name in getVirtualFileRef for…
Apr 14 2021, 11:29 AM
arphaman closed D100428: [clang][FileManager] Support empty file name in getVirtualFileRef for serialized diagnostics.
Apr 14 2021, 11:29 AM · Restricted Project

Apr 13 2021

arphaman added a comment to D100428: [clang][FileManager] Support empty file name in getVirtualFileRef for serialized diagnostics.

Thanks, will do.

Apr 13 2021, 5:16 PM · Restricted Project
arphaman requested review of D100428: [clang][FileManager] Support empty file name in getVirtualFileRef for serialized diagnostics.
Apr 13 2021, 5:04 PM · Restricted Project

Apr 8 2021

arphaman accepted D100087: Include `count` in AppleClang toolchains..
Apr 8 2021, 1:02 PM · Restricted Project

Apr 5 2021

arphaman accepted D95845: [ObjC] Add a command line flag that disables recognition of objc_direct for testability.
Apr 5 2021, 3:08 PM · Restricted Project

Mar 17 2021

arphaman committed rGd672d5219a72: Revert "[CodeGenModule] Set dso_local for Mach-O GlobalValue" (authored by arphaman).
Revert "[CodeGenModule] Set dso_local for Mach-O GlobalValue"
Mar 17 2021, 5:28 PM
arphaman added a reverting change for rG809a1e0ffd7a: [CodeGenModule] Set dso_local for Mach-O GlobalValue: rGd672d5219a72: Revert "[CodeGenModule] Set dso_local for Mach-O GlobalValue".
Mar 17 2021, 5:28 PM
arphaman closed D98458: Revert "[CodeGenModule] Set dso_local for Mach-O GlobalValue".
Mar 17 2021, 5:27 PM · Restricted Project

Mar 11 2021

arphaman added a reverting change for rG809a1e0ffd7a: [CodeGenModule] Set dso_local for Mach-O GlobalValue: D98458: Revert "[CodeGenModule] Set dso_local for Mach-O GlobalValue".
Mar 11 2021, 2:58 PM
arphaman requested review of D98458: Revert "[CodeGenModule] Set dso_local for Mach-O GlobalValue".
Mar 11 2021, 2:57 PM · Restricted Project
arphaman added a comment to D98450: [clang] store an identifer instead of declref for ns_error_domain attribute.

The original implementation of the attribute on GitHub.com/apple/llvm-project also used the identifier instead of the declref, so we would like to go back to that.

Mar 11 2021, 1:40 PM
arphaman requested review of D98450: [clang] store an identifer instead of declref for ns_error_domain attribute.
Mar 11 2021, 1:37 PM

Mar 9 2021

arphaman committed rG234f3211a3dd: [clang][driver] Support Darwin SDK names with an optional prefix in their name (authored by arphaman).
[clang][driver] Support Darwin SDK names with an optional prefix in their name
Mar 9 2021, 2:58 PM
arphaman committed rG2de0a18a8949: [clang][ObjC] allow the use of NSAttributedString * return type with format_arg… (authored by arphaman).
[clang][ObjC] allow the use of NSAttributedString * return type with format_arg…
Mar 9 2021, 1:37 PM

Feb 25 2021

arphaman accepted D96572: [Clang][ASan] Introduce `-fsanitize-address-destructor-kind=` driver & frontend option..

Thanks, LGTM

Feb 25 2021, 10:29 AM · Restricted Project

Feb 2 2021

arphaman added inline comments to D95845: [ObjC] Add a command line flag that disables recognition of objc_direct for testability.
Feb 2 2021, 9:02 AM · Restricted Project

Jan 6 2021

arphaman accepted D94197: Fix failing triple test for macOS 11 with non-zero minor versions..

LGTM, thanks

Jan 6 2021, 2:55 PM · Restricted Project

Jan 5 2021

arphaman accepted D94101: [clang][cli] Specify correct integer width for -fbuild-session-timestamp.
Jan 5 2021, 11:02 AM · Restricted Project

Dec 18 2020

arphaman accepted D93148: Basic: Add native support for stdin to SourceManager and FileManager.

Nice, it looks cleaner than the override of file contents that was used before. Left one NIT comment

Dec 18 2020, 4:31 PM · Restricted Project
arphaman accepted D92531: Basic: Support named pipes natively in SourceManager.
Dec 18 2020, 4:01 PM · Restricted Project
arphaman added a comment to D92531: Basic: Support named pipes natively in SourceManager.

Left one minor suggestion , but LGTM otherwise

Dec 18 2020, 4:01 PM · Restricted Project

Dec 16 2020

arphaman added inline comments to D92788: [clangd] NFC: Use SmallVector<T> where possible.
Dec 16 2020, 6:44 PM · Restricted Project
arphaman added inline comments to D92788: [clangd] NFC: Use SmallVector<T> where possible.
Dec 16 2020, 10:31 AM · Restricted Project

Dec 15 2020

arphaman accepted D93247: [Sema] Fix a miscompile by retaining array qualifiers when folding VLAs to constant arrays.

Thanks!

Dec 15 2020, 8:52 AM · Restricted Project

Dec 8 2020

arphaman accepted D92627: Basic: Add hashing support for FileEntryRef and DirectoryEntryRef.
Dec 8 2020, 2:19 PM · Restricted Project

Dec 4 2020

arphaman committed rGdb226cdf4cf9: [objc] diagnose protocol conformance in categories with direct members (authored by arphaman).
[objc] diagnose protocol conformance in categories with direct members
Dec 4 2020, 3:57 PM
arphaman closed D92602: [objc] diagnose protocol conformance in categories with direct members in their corresponding class interfaces.
Dec 4 2020, 3:57 PM · Restricted Project
arphaman committed rGeddd1d192bca: [clang] add a `swift_async_name` attribute (authored by arphaman).
[clang] add a `swift_async_name` attribute
Dec 4 2020, 3:56 PM
arphaman closed D92355: [clang] add a `swift_async_name` attribute.
Dec 4 2020, 3:56 PM · Restricted Project
arphaman committed rG03dcd57ecf99: [clang] add a new `swift_attr` attribute (authored by arphaman).
[clang] add a new `swift_attr` attribute
Dec 4 2020, 3:56 PM
arphaman closed D92354: [clang] add a new `swift_attr` attribute.
Dec 4 2020, 3:56 PM · Restricted Project
arphaman added a comment to D92355: [clang] add a `swift_async_name` attribute.

There's no information in either the attribute definition in Attr.td or in the documentation as to what subject this attribute applies to.

Dec 4 2020, 11:01 AM · Restricted Project
arphaman updated the diff for D92355: [clang] add a `swift_async_name` attribute.

address review comments

Dec 4 2020, 11:01 AM · Restricted Project
arphaman added a comment to D92354: [clang] add a new `swift_attr` attribute.

Thanks for taking a look.

Dec 4 2020, 9:29 AM · Restricted Project
arphaman updated the diff for D92354: [clang] add a new `swift_attr` attribute.

Updated for review comments

Dec 4 2020, 9:28 AM · Restricted Project

Dec 3 2020

arphaman requested review of D92602: [objc] diagnose protocol conformance in categories with direct members in their corresponding class interfaces.
Dec 3 2020, 1:04 PM · Restricted Project

Nov 30 2020

arphaman requested review of D92355: [clang] add a `swift_async_name` attribute.
Nov 30 2020, 4:17 PM · Restricted Project
arphaman requested review of D92354: [clang] add a new `swift_attr` attribute.
Nov 30 2020, 4:11 PM · Restricted Project

Nov 11 2020

arphaman accepted D91204: [clang-scan-deps] Fix for input file given as relative path in compilation database "command" entry.

This make sense to me, thank you

Nov 11 2020, 4:59 PM · Restricted Project
arphaman committed rG3df3b62018c0: [clang] ns_error_domain attribute also supports CFString typed variables (authored by arphaman).
[clang] ns_error_domain attribute also supports CFString typed variables
Nov 11 2020, 8:51 AM
arphaman closed D90891: [clang] ns_error_domain attribute also supports CFString typed variables.
Nov 11 2020, 8:50 AM · Restricted Project

Nov 5 2020

arphaman requested review of D90891: [clang] ns_error_domain attribute also supports CFString typed variables.
Nov 5 2020, 2:37 PM · Restricted Project

Nov 4 2020

arphaman added inline comments to D86105: [darwin] Disable the -Wpsabi warning.
Nov 4 2020, 3:01 PM
arphaman updated the diff for D86105: [darwin] Disable the -Wpsabi warning.

Address Ahmed's comments.

Nov 4 2020, 2:57 PM

Nov 2 2020

arphaman committed rG701456b52355: [darwin] add support for __isPlatformVersionAtLeast check for if (@available) (authored by arphaman).
[darwin] add support for __isPlatformVersionAtLeast check for if (@available)
Nov 2 2020, 4:28 PM
arphaman closed D90367: [darwin] add support for __isPlatformVersionAtLeast check for if (@available).
Nov 2 2020, 4:28 PM · Restricted Project, Restricted Project
arphaman accepted D90481: Basic: Change Module::Umbrella to a PointerUnion, NFC.

LGTM, thanks for cleaning it up

Nov 2 2020, 3:25 PM · Restricted Project
arphaman accepted D90478: Basic: Split out DirectoryEntry.h, NFC.
Nov 2 2020, 3:24 PM · Restricted Project
arphaman added inline comments to D90367: [darwin] add support for __isPlatformVersionAtLeast check for if (@available).
Nov 2 2020, 3:20 PM · Restricted Project, Restricted Project

Oct 28 2020

arphaman added a comment to D60193: [OpenCL] Added addrspace_cast operator.

This warrants a revert since it's breaking ABI compatibility for our libclang's users. @Anastasia will you be able to take a look at this soon? I plan on reverting this patch in a couple of weeks if the issue is still unresolved.

Oct 28 2020, 11:32 PM · Restricted Project
arphaman requested review of D90367: [darwin] add support for __isPlatformVersionAtLeast check for if (@available).
Oct 28 2020, 11:03 PM · Restricted Project, Restricted Project
arphaman accepted D89834: FileManager: Improve the FileEntryRef API and customize its OptionalStorage.

This approach seems like a reasonable compromise, thanks! LGTM.

Oct 28 2020, 8:50 PM · Restricted Project, Restricted Project