Skip to content

[libc] Annex K Design #156244

@bassiounix

Description

@bassiounix

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 in stddef.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:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions