From: Szabolcs Nagy <nsz@port70.net>
To: musl@lists.openwall.com
Subject: Re: C11 api coverage
Date: Wed, 5 Sep 2012 08:40:10 +0200 [thread overview]
Message-ID: <20120905064010.GY1104@port70.net> (raw)
In-Reply-To: <20120905062208.GR27715@brightrain.aerifal.cx>
[-- Attachment #1: Type: text/plain, Size: 528 bytes --]
* Rich Felker <dalias@aerifal.cx> [2012-09-05 02:22:08 -0400]:
> On Tue, Sep 04, 2012 at 10:38:37PM +0200, Szabolcs Nagy wrote:
> > based on annex B (library summary) i created a diff
> > between the symbols of c99 and c11 to help the c11
>
> As I mentioned on IRC, the attached list includes symbols from Annex
> K, Redmond Troll Interfaces. At this time I'm really not interested in
> including/supporting them, and even if there did turn out to be a need
ok i removed annex k symbols
(and updated the c11 coverage table)
[-- Attachment #2: c11.diff --]
[-- Type: text/x-diff, Size: 7775 bytes --]
+static_assert assert.h
+CMPLX double complex CMPLX(double x, double y); complex.h
+CMPLXF float complex CMPLXF(float x, float y); complex.h
+CMPLXL long double complex CMPLXL(long double x, long double y); complex.h
+DBL_DECIMAL_DIG float.h
+DBL_HAS_SUBNORM float.h
+DBL_TRUE_MIN float.h
+FLT_DECIMAL_DIG float.h
+FLT_HAS_SUBNORM float.h
+FLT_TRUE_MIN float.h
+LDBL_DECIMAL_DIG float.h
+LDBL_HAS_SUBNORM float.h
+LDBL_TRUE_MIN float.h
-longjmp void longjmp(jmp_buf env, int val); setjmp.h
+longjmp _Noreturn void longjmp(jmp_buf env, int val); setjmp.h
+__alignas_is_defined stdalign.h
+alignas stdalign.h
+ATOMIC_BOOL_LOCK_FREE stdatomic.h
+ATOMIC_CHAR16_T_LOCK_FREE stdatomic.h
+ATOMIC_CHAR32_T_LOCK_FREE stdatomic.h
+ATOMIC_CHAR_LOCK_FREE stdatomic.h
+ATOMIC_FLAG_INIT stdatomic.h
+ATOMIC_INT_LOCK_FREE stdatomic.h
+ATOMIC_LLONG_LOCK_FREE stdatomic.h
+ATOMIC_LONG_LOCK_FREE stdatomic.h
+ATOMIC_POINTER_LOCK_FREE stdatomic.h
+ATOMIC_SHORT_LOCK_FREE stdatomic.h
+ATOMIC_VAR_INIT ATOMIC_VAR_INIT(C value) stdatomic.h
+ATOMIC_WCHAR_T_LOCK_FREE stdatomic.h
+atomic_bool stdatomic.h
+atomic_char stdatomic.h
+atomic_char16_t stdatomic.h
+atomic_char32_t stdatomic.h
+atomic_compare_exchange_strong _Bool atomic_compare_exchange_strong(volatile A *object, C *expected, C desired); stdatomic.h
+atomic_compare_exchange_strong_explicit _Bool atomic_compare_exchange_strong_explicit(volatile A *object, C *expected, C desired, memory_order success, memory_order failure); stdatomic.h
+atomic_compare_exchange_weak _Bool atomic_compare_exchange_weak(volatile A *object, C *expected, C desired); stdatomic.h
+atomic_compare_exchange_weak_explicit _Bool atomic_compare_exchange_weak_explicit(volatile A *object, C *expected, C desired, memory_order success, memory_order failure); stdatomic.h
+atomic_exchange C atomic_exchange(volatile A *object, C desired); stdatomic.h
+atomic_exchange_explicit C atomic_exchange_explicit(volatile A *object, C desired, memory_order order); stdatomic.h
+atomic_fetch_key C atomic_fetch_key(volatile A *object, M operand); stdatomic.h
+atomic_fetch_key_explicit C atomic_fetch_key_explicit(volatile A *object, M operand, memory_order order); stdatomic.h
+atomic_flag stdatomic.h
+atomic_flag_clear void atomic_flag_clear(volatile atomic_flag *object); stdatomic.h
+atomic_flag_clear_explicit void atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order); stdatomic.h
+atomic_flag_test_and_set _Bool atomic_flag_test_and_set(volatile atomic_flag *object); stdatomic.h
+atomic_flag_test_and_set_explicit _Bool atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order); stdatomic.h
+atomic_init void atomic_init(volatile A *obj, C value); stdatomic.h
+atomic_int stdatomic.h
+atomic_int_fast16_t stdatomic.h
+atomic_int_fast32_t stdatomic.h
+atomic_int_fast64_t stdatomic.h
+atomic_int_fast8_t stdatomic.h
+atomic_int_least16_t stdatomic.h
+atomic_int_least32_t stdatomic.h
+atomic_int_least64_t stdatomic.h
+atomic_int_least8_t stdatomic.h
+atomic_intmax_t stdatomic.h
+atomic_intptr_t stdatomic.h
+atomic_is_lock_free _Bool atomic_is_lock_free(const volatile A *obj); stdatomic.h
+atomic_llong stdatomic.h
+atomic_load C atomic_load(volatile A *object); stdatomic.h
+atomic_load_explicit C atomic_load_explicit(volatile A *object, memory_order order); stdatomic.h
+atomic_long stdatomic.h
+atomic_ptrdiff_t stdatomic.h
+atomic_schar stdatomic.h
+atomic_short stdatomic.h
+atomic_signal_fence void atomic_signal_fence(memory_order order); stdatomic.h
+atomic_size_t stdatomic.h
+atomic_store void atomic_store(volatile A *object, C desired); stdatomic.h
+atomic_store_explicit void atomic_store_explicit(volatile A *object, C desired, memory_order order); stdatomic.h
+atomic_thread_fence void atomic_thread_fence(memory_order order); stdatomic.h
+atomic_uchar stdatomic.h
+atomic_uint stdatomic.h
+atomic_uint_fast16_t stdatomic.h
+atomic_uint_fast32_t stdatomic.h
+atomic_uint_fast64_t stdatomic.h
+atomic_uint_fast8_t stdatomic.h
+atomic_uint_least16_t stdatomic.h
+atomic_uint_least32_t stdatomic.h
+atomic_uint_least64_t stdatomic.h
+atomic_uint_least8_t stdatomic.h
+atomic_uintmax_t stdatomic.h
+atomic_uintptr_t stdatomic.h
+atomic_ullong stdatomic.h
+atomic_ulong stdatomic.h
+atomic_ushort stdatomic.h
+atomic_wchar_t stdatomic.h
+kill_dependency type kill_dependency(type y); stdatomic.h
+memory_order stdatomic.h
+memory_order_acq_rel stdatomic.h
+memory_order_acquire stdatomic.h
+memory_order_consume stdatomic.h
+memory_order_relaxed stdatomic.h
+memory_order_release stdatomic.h
+memory_order_seq_cst stdatomic.h
+max_align_t stddef.h
-gets char *gets(char *s); stdio.h
-_Exit void _Exit(int status); stdlib.h
-abort void abort(void); stdlib.h
+_Exit _Noreturn void _Exit(int status); stdlib.h
+abort _Noreturn void abort(void); stdlib.h
+aligned_alloc void *aligned_alloc(size_t alignment, size_t size); stdlib.h
+at_quick_exit int at_quick_exit(void (*func)(void)); stdlib.h
-exit void exit(int status); stdlib.h
+exit _Noreturn void exit(int status); stdlib.h
+quick_exit _Noreturn void quick_exit(int status); stdlib.h
+noreturn stdnoreturn.h
+ONCE_FLAG_INIT threads.h
+TSS_DTOR_ITERATIONS threads.h
+call_once void call_once(once_flag *flag, void (*func)(void)); threads.h
+cnd_broadcast int cnd_broadcast(cnd_t *cond); threads.h
+cnd_destroy void cnd_destroy(cnd_t *cond); threads.h
+cnd_init int cnd_init(cnd_t *cond); threads.h
+cnd_signal int cnd_signal(cnd_t *cond); threads.h
+cnd_t threads.h
+cnd_timedwait int cnd_timedwait(cnd_t *restrict cond, mtx_t *restrict mtx, const struct timespec *restrict ts); threads.h
+cnd_wait int cnd_wait(cnd_t *cond, mtx_t *mtx); threads.h
+mtx_destroy void mtx_destroy(mtx_t *mtx); threads.h
+mtx_init int mtx_init(mtx_t *mtx, int type); threads.h
+mtx_lock int mtx_lock(mtx_t *mtx); threads.h
+mtx_plain threads.h
+mtx_recursive threads.h
+mtx_t threads.h
+mtx_timed threads.h
+mtx_timedlock int mtx_timedlock(mtx_t *restrict mtx, const struct timespec *restrict ts); threads.h
+mtx_trylock int mtx_trylock(mtx_t *mtx); threads.h
+mtx_unlock int mtx_unlock(mtx_t *mtx); threads.h
+once_flag threads.h
+thrd_busy threads.h
+thrd_create int thrd_create(thrd_t *thr, thrd_start_t func, void *arg); threads.h
+thrd_current thrd_t thrd_current(void); threads.h
+thrd_detach int thrd_detach(thrd_t thr); threads.h
+thrd_equal int thrd_equal(thrd_t thr0, thrd_t thr1); threads.h
+thrd_error threads.h
+thrd_exit _Noreturn void thrd_exit(int res); threads.h
+thrd_join int thrd_join(thrd_t thr, int *res); threads.h
+thrd_nomem threads.h
+thrd_sleep int thrd_sleep(const struct timespec *duration, struct timespec *remaining); threads.h
+thrd_start_t threads.h
+thrd_success threads.h
+thrd_t threads.h
+thrd_timedout threads.h
+thrd_yield void thrd_yield(void); threads.h
+thread_local threads.h
+tss_create int tss_create(tss_t *key, tss_dtor_t dtor); threads.h
+tss_delete void tss_delete(tss_t key); threads.h
+tss_dtor_t threads.h
+tss_get void *tss_get(tss_t key); threads.h
+tss_set int tss_set(tss_t key, void *val); threads.h
+tss_t threads.h
+TIME_UTC time.h
+struct timespec time.h
+timespec_get int timespec_get(timespec *ts, int base); time.h
+c16rtomb size_t c16rtomb(char * restrict s, char16_t c16, mbstate_t * restrict ps); uchar.h
+c32rtomb size_t c32rtomb(char * restrict s, char32_t c32, mbstate_t * restrict ps); uchar.h
+char16_t uchar.h
+char32_t uchar.h
+mbrtoc16 size_t mbrtoc16(char16_t * restrict pc16, const char * restrict s, size_t n, mbstate_t * restrict ps); uchar.h
+mbrtoc32 size_t mbrtoc32(char32_t * restrict pc32, const char * restrict s, size_t n, mbstate_t * restrict ps); uchar.h
+mbstate_t uchar.h
+size_t uchar.h
next prev parent reply other threads:[~2012-09-05 6:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-04 20:38 Szabolcs Nagy
2012-09-05 6:22 ` Rich Felker
2012-09-05 6:40 ` Szabolcs Nagy [this message]
2012-09-07 18:47 ` Isaac Dunham
2012-09-07 21:17 ` Rich Felker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120905064010.GY1104@port70.net \
--to=nsz@port70.net \
--cc=musl@lists.openwall.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).