From d70a2c671c672bc1107ed4b560a4dbfa17f40a7b Mon Sep 17 00:00:00 2001 From: Lephenixnoir Date: Sun, 16 May 2021 18:11:09 +0200 Subject: [PATCH] add a STATUS file to keep track of implementation progress --- STATUS | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 STATUS diff --git a/STATUS b/STATUS new file mode 100644 index 0000000..a45fad4 --- /dev/null +++ b/STATUS @@ -0,0 +1,112 @@ +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 + 7.2.1 assert: LDEPS(fprintf,stderr,abort) + +7.3 + Provided by Lephenixnoir's port of OpenLibm. + TODO: Check standard compliance + +7.4 + 7.4.1 is*: TEST + 7.4.2 to*: TEST + +7.5 + 7.5.2 EDOM EILSEQ ERANGE: DONE + +7.6 + Provided by Lephenixnoir's port of OpenLibm. + TODO: Check standard compliance + +7.7 + Provided by GCC. + +7.8 + 7.8.1 Macros for printing: TODO + 7.8.2.1 imaxabs: TODO + 7.8.2.2 imaxdiv: TODO + 7.8.2.3 strotimax strtoumax: TODO + 7.8.2.4 wcstoimax wcstoumax: TODO + +7.9 + Provided by GCC. + +7.10 + Provided by GCC. + +7.11 + 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() + +7.12 + Provided by Lephenixnoir's port of OpenLibm. + TODO: Check standard compliance + +7.13 + 7.13.1 setjmp: TEST + 7.13.2 longjmp: TEST + +7.14 + TODO: Difficult; the execution environment might not support signals + +7.15 + Provided by GCC. + +7.16 + Provided by GCC. + +7.17 + Provided by GCC. + +7.18 + Provided by GCC. + +7.19 + TODO (will give the full list later on) + +7.20 + TODO (will give the full list later on) + +7.21 + TODO (will give the full list later on) + +7.22 + Provided by GCC. + +7.23 + TODO (will give the full list later on) + +7.24 + TODO (not a priority) + +7.25 + TODO (not a priority)