ciabatta/todo.md

106 lines
2.7 KiB
Markdown
Raw Normal View History

2022-06-20 04:41:44 +00:00
2022-06-21 13:32:46 +00:00
general:
* Start writing documentation concerning various implementation defined
behaviours of the library.
2022-08-05 04:57:31 +00:00
* (MSVC Ext.) Different kinds of main functions: wmain, WinMain, wWinMain, DllMain
* (MSVC Ext.) envp argument for main functions
2022-06-21 13:32:46 +00:00
2022-06-20 04:41:44 +00:00
math.h:
2022-07-17 15:21:42 +00:00
* exp
* exp2
* expml
* log
* log10
* log2
* log1p
* pow
* cbrt
* hypot
* atan2
* erf
* erfc
* tgamma
* lgamma
* frexp
* ldexp
* M_* constants
* M_E
* M_LOG2
* M_LOG10
* other stuff?
2022-06-20 04:41:44 +00:00
2022-08-10 06:12:01 +00:00
stdint.h:
* Implement 7.20.3
2022-06-20 04:41:44 +00:00
stdio.h:
2022-07-17 15:21:42 +00:00
* The only reason to keep a linked list of all streams is to make sure they
are flushed after main() returns. I wonder if only remembering the files
with a buffer would increase performance.
2022-07-18 21:27:37 +00:00
* Formatted scan
2022-07-18 22:20:09 +00:00
* %s precision should specify how much characters to *write*
2022-07-28 04:44:44 +00:00
* %s check for NULL
2022-07-24 09:31:35 +00:00
* %Ls this is an actual weird territory. If (wchar_t *) is a unicode string
then to determine it's "width" (to figure out field padding) would require
to use a Unicode composition algorithm. But the problem is that windows
Unicode rendering advances text by 2 units, even if it's 1 graphical
character that was composed from 2 unicode characters. The question
becomes: do we implement the thing correctly by using a more complex
solution, or do we succumb to windows' bullshittery. I guess the answer is
obvious. That's why I wrote this todo item :D
2022-07-28 18:02:12 +00:00
* tmpfile
* tmpnam
* tmpfile_s
* tmpnam_s
* Printing 8.98846567431157854073e+307
* Printing negative zero
2023-06-24 03:42:11 +00:00
* Add functions for testing a file path, creating directories
* Fix the bug where if a file wasn't closed the thing crashes when
trying to flush the buffer
2022-06-20 04:41:44 +00:00
stdlib.h:
2022-07-17 15:21:42 +00:00
* Strtod base 16 must be correctly rounded
* Multibyte string functions
* Better PRNG
2022-07-18 21:27:37 +00:00
* Fix aligned_malloc
2022-07-28 18:02:12 +00:00
* Constraint Handlers
* getenv_s
2022-08-08 13:48:01 +00:00
* aligned_alloc can't be used with free()
2022-07-28 18:02:12 +00:00
string.h:
* strnlen_s
* memset_s
* memmove_s
* memcpy_s
* strncpy_s
* strcpy_s
* strcat_s
* strncat_s
* strtok_s
* strerror_s
* strerrorlen_s
2022-06-20 04:41:44 +00:00
2022-08-06 12:36:16 +00:00
tgmath.h:
* Due to the use of conditional operator in type-generic macros the
expression always expands to the value of type `long double`. This leads
to warnings when used with printf, e.g. as in printf("%f\n", exp(0)).
Using _Generic macros isn't a good choice either, because it won't work
with typedef'd types.
In other words there's no pure-C way to do tgmath.h.
That's probably the reason msvc stdlib headers don't implement tgmath.h.
clang implements it with __attribute__((__overloadable__)).
2022-06-20 04:41:44 +00:00
threads.h:
2022-07-17 15:21:42 +00:00
* TODO: add todo items
2022-06-20 04:41:44 +00:00
2022-07-28 18:02:12 +00:00
time.h:
* Probably some other funcs
* asctime_s
* ctime_s
* gmtime_s
* localtime_s
2022-06-20 04:41:44 +00:00
wchar.h:
2022-08-05 04:57:31 +00:00
* Collation, IO, Tokenization, Conversions