mailing list of musl libc
 help / color / mirror / code / Atom feed
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

  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).