-
Notifications
You must be signed in to change notification settings - Fork 14.8k
Open
Labels
Description
I want to have some discussions about the following points:
- The speed of review/implementation. Annex K is not a top priority, but how fast can we go? [libc][stdio] Add fopen_s and bootstrap annex k. #152248
- Feedback on current implementation [libc][stdio] Add fopen_s and bootstrap annex k. #152248
- Do we have a decision on thread local constraint handlers? it's only specified in the standard to have a global constraint handler and that is what implemented in [libc][stdio] Add fopen_s and bootstrap annex k. #152248.
- The current implementation uses existing libc functions. I didn't split and share the common implementation due to different targets. is this viable? or should the new interfaces make their own implementation? note that most of the code will be the same logic on each target with just bounds checking code, so I think wrapping the internal implementation with this behavior would be the best way to go. (think of it as
_s
functions are wrappers on top of existing functions, or proxies) - Since the interface is under development, should we keep only 1 target ATM (like x86) to drive the development or enable it on all current targets of LLVM libc (like ARM and GPUs)?
- Who is the owner of
<stddef.h>
? should we move it from clang to libc? The standard specifies some additional macros and data types to be added instddef.h
like__STDC_LIB_EXT1__
to indicate the support of the interface in libc. The problem here rises from if you used clang with some other libc which doesn't support Annex K (since clang is the owner of the header). - What language version of C++ should annex k be available for? I defaulted it to C++17 as this is the first mention of annex k in C++ (AFAIK)
Ref: