diff --git a/STATUS b/STATUS index a1d50cf..7e6ef2a 100644 --- a/STATUS +++ b/STATUS @@ -1,7 +1,7 @@ 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: +# Notes for implementers 7.1.2ยง6: Use (extern) in all function prototypes @@ -14,6 +14,8 @@ Notes for implementers: 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 +# Status + In this file, every definition is classified in one of several implementation statuses. There are 5 stages that every definition should go through. @@ -24,10 +26,9 @@ TEST: Function/symbol/macro needs to be tested DONE: Function/symbol/macro is defined, builds, links, and is tested 7.2 - 7.2.1 assert: LDEPS(fprintf,stderr,abort) +! 7.2.1 assert: LDEPS(fprintf,stderr,abort) -7.3 - Provided by Lephenixnoir's port of OpenLibm. +7.3 => OpenLibm 7.4 7.4.1 is*: DONE @@ -36,88 +37,120 @@ DONE: Function/symbol/macro is defined, builds, links, and is tested 7.5 7.5.2 EDOM EILSEQ ERANGE: DONE -7.6 - Provided by Lephenixnoir's port of OpenLibm. +7.6 => OpenLibm -7.7 - Provided by GCC. +7.7 => GCC 7.8 - 7.8.1 PRI* macros: LDEPS(*printf) - 7.8.1 SCN* macros: LDEPS(*scanf) +! 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 strtoimax strtoumax: DONE - 7.8.2.4 wcstoimax wcstoumax: TODO +! 7.8.2.4 wcstoimax wcstoumax: TODO -7.9 - Provided by GCC. +7.9 => GCC -7.10 - Provided by GCC. +7.10 => GCC 7.11 - 7.11.1 setlocale: TEST - 7.11.2 localeconv: TEST +! 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 - Provided by Lephenixnoir's port of OpenLibm. +7.12 => OpenLibm 7.13 - 7.13.1 setjmp: TEST - 7.13.2 longjmp: TEST +! 7.13.1 setjmp: TEST +! 7.13.2 longjmp: TEST 7.14 - TODO: Difficult; the execution environment might not support signals +! 7.14.1 Macros and stuff: TODO +! 7.14.1.1 signal: TODO +! 7.14.1.2 raise: TODO -7.15 - Provided by GCC. +7.15 => GCC -7.16 - Provided by GCC. +7.16 => GCC -7.17 - Provided by GCC. +7.17 => GCC -7.18 - Provided by GCC. +7.18 => GCC 7.19 - TODO (will give the full list later on) +! 7.19.1 Introduction: TODO +! 7.19.4 Operations on files: TODO +! 7.19.5 File access functions: TODO +! 7.19.6 Formatted input/output functions: TODO +! 7.19.7 Character input/output functions: TODO +! 7.19.8 Direct input/output functions: TODO +! 7.19.9 File positioning functions: TODO +! 7.19.10 Error-handling functions: TODO 7.20 - 7.20.1.1 atof: TODO +! 7.20.1.1 atof: TODO 7.20.1.2 atoi, atol, atoll: DONE - 7.20.1.3 strtod, strtof, strtold: 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.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.20.7 Multibyte/wide character conversion functions: TODO +! 7.20.8 Multibyte/wide string conversion functions: TODO 7.21 - TODO (will give the full list later on) + 7.21.2.1 memcpy: DONE + 7.21.2.2 memmove: DONE +! 7.21.2.3 strcpy: TODO +! 7.21.2.4 strncpy: TODO +! 7.21.3.1 strcat: TODO +! 7.21.3.2 strncat: TODO +! 7.21.4.1 memcmp: TEST +! 7.21.4.2 strcmp: TODO +! 7.21.4.3 strcoll: TODO +! 7.21.4.4 strncmp: TODO +! 7.21.4.5 strxfrm: TODO +! 7.21.5.1 memchr: TODO +! 7.21.5.2 strchr: TODO +! 7.21.5.3 strcspn: TODO +! 7.21.5.4 strpbrk: TODO +! 7.21.5.5 strrchr: TODO +! 7.21.5.6 strspn: TODO +! 7.21.5.7 strstr: TODO +! 7.21.5.8 strtok: TODO + 7.21.6.1 memset: DONE +! 7.21.6.2 strerror: TODO +! 7.21.6.3 strlen: TODO -7.22 - Provided by GCC. +7.22 => GCC 7.23 - TODO (will give the full list later on) +! 7.23.1 Components of time: TODO +! 7.23.2.1 clock: TODO +! 7.23.2.2 difftime: TODO +! 7.23.2.3 mktime: TODO +! 7.23.2.4 time: TODO +! 7.23.3.1 asctime: TODO +! 7.23.3.2 ctime: TODO +! 7.23.3.3 gmtime: TODO +! 7.23.3.4 localtime: TODO +! 7.23.3.5 strftime: TODO 7.24 TODO (not a priority) 7.25 TODO (not a priority) + +# Supporting locales + +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 +-> Properly implement strcoll() and strxfrm()