mirror of
https://git.planet-casio.com/Vhex-Kernel-Core/fxlibc.git
synced 2024-12-28 04:23:38 +01:00
06f975f75c
The presumed bug where the value computed without the sign overflows even though the negative result can be represented is not actually a problem, because this only happens with signed results and the temporary value is computed as unsigned (thus with extra range).
126 lines
3.6 KiB
Text
126 lines
3.6 KiB
Text
This file describes the implementation status and some notes; information is
|
|
taken from the C99 standard (ISO/IEC 9899:1999), section 7 ("Library").
|
|
|
|
Notes for implementers:
|
|
|
|
7.1.2§6:
|
|
Use (extern) in all function prototypes
|
|
7.1.3§1:
|
|
Only expose standard identifiers; anything else might be defined as a macro.
|
|
Make sure every argument name, internal function name, etc. starts with
|
|
either "__" or "_X" (where X is any uppercase letter)
|
|
7.1.4§1:
|
|
Always give a function even if there is a macro definition, so that the
|
|
address of the function can be taken; don't rely on the macro being defined,
|
|
as the user can remove it except in some special cases
|
|
|
|
In this file, every definition is classified in one of several implementation
|
|
statuses. There are 5 stages that every definition should go through.
|
|
|
|
TODO: Function/symbol/macro is not implemented/defined
|
|
BDEPS(...): Function/symbol/macro needs ... to build
|
|
LDEPS(...): Function/symbol/macro needs ... to link
|
|
TEST: Function/symbol/macro needs to be tested
|
|
DONE: Function/symbol/macro is defined, builds, links, and is tested
|
|
|
|
7.2 <assert.h>
|
|
7.2.1 assert: LDEPS(fprintf,stderr,abort)
|
|
|
|
7.3 <complex.h>
|
|
Provided by Lephenixnoir's port of OpenLibm.
|
|
TODO: Check standard compliance
|
|
|
|
7.4 <ctype.h>
|
|
7.4.1 is*: DONE
|
|
7.4.2 to*: DONE
|
|
|
|
7.5 <errno.h>
|
|
7.5.2 EDOM EILSEQ ERANGE: DONE
|
|
|
|
7.6 <fenv.h>
|
|
Provided by Lephenixnoir's port of OpenLibm.
|
|
TODO: Check standard compliance
|
|
|
|
7.7 <float.h>
|
|
Provided by GCC.
|
|
|
|
7.8 <inttypes.h>
|
|
7.8.1 PRI* macros: LDEPS(*printf)
|
|
7.8.1 SCN* macros: LDEPS(*scanf)
|
|
7.8.2.1 imaxabs: DONE
|
|
7.8.2.2 imaxdiv: DONE
|
|
7.8.2.3 strotimax strtoumax: TODO
|
|
7.8.2.4 wcstoimax wcstoumax: TODO
|
|
|
|
7.9 <iso646.h>
|
|
Provided by GCC.
|
|
|
|
7.10 <limits.h>
|
|
Provided by GCC.
|
|
|
|
7.11 <locale.h>
|
|
7.11.1 setlocale: TEST
|
|
7.11.2 localeconv: TEST
|
|
|
|
What if we wanted to support more locales?
|
|
-> Need to a mechanism to supply the raw information, similar to the text
|
|
files in /usr/share/i18n/locales
|
|
-> Implement setlocale() and localeconv() properly (not hard)
|
|
-> Probably support nl_langinfo(), which is much better than localeconv()
|
|
-> Fix the "TODO: locale: ..." messages wherever assumptions on the locale
|
|
are made in the code
|
|
|
|
7.12 <math.h>
|
|
Provided by Lephenixnoir's port of OpenLibm.
|
|
TODO: Check standard compliance
|
|
|
|
7.13 <setjmp.h>
|
|
7.13.1 setjmp: TEST
|
|
7.13.2 longjmp: TEST
|
|
|
|
7.14 <signal.h>
|
|
TODO: Difficult; the execution environment might not support signals
|
|
|
|
7.15 <stdarg.h>
|
|
Provided by GCC.
|
|
|
|
7.16 <stdbool.h>
|
|
Provided by GCC.
|
|
|
|
7.17 <stddef.h>
|
|
Provided by GCC.
|
|
|
|
7.18 <stdint.h>
|
|
Provided by GCC.
|
|
|
|
7.19 <stdio.h>
|
|
TODO (will give the full list later on)
|
|
|
|
7.20 <stdlib.h>
|
|
7.20.1.1 atof: TODO
|
|
7.20.1.2 atoi, atol, atoll: TODO
|
|
7.20.1.3 strtod, strtof, strtold: TODO
|
|
7.20.1.4 strtol, strtoul, strtoll, strtoull: DONE
|
|
7.20.2 Pseudo-random sequence generation functions: TODO
|
|
7.20.3 Memory management functions: TODO (check existing code first)
|
|
7.20.4 Communication with the environment: TODO
|
|
7.20.5 Searching and sorting utilities: TODO
|
|
7.20.6.1 abs, labs, llabs: DONE
|
|
7.20.6.2 div, ldiv, lldiv: DONE
|
|
7.20.7 Multibyte/wide character conversion functions: TODO
|
|
7.20.8 Multibyte/wide string conversion functions: TODO
|
|
|
|
7.21 <string.h>
|
|
TODO (will give the full list later on)
|
|
|
|
7.22 <tgmath.h>
|
|
Provided by GCC.
|
|
|
|
7.23 <time.h>
|
|
TODO (will give the full list later on)
|
|
|
|
7.24 <wchar.h>
|
|
TODO (not a priority)
|
|
|
|
7.25 <wctype.h>
|
|
TODO (not a priority)
|