This repository was archived by the owner on Jan 11, 2020. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathTODO
79 lines (63 loc) · 2.59 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Release 0.1.0 ("Hello, world!")
-------------------------------
+ Make the classic "Hello, world!" example run on all supported platforms.
- Implement <assert.h> so that the test harness can be made useful:
- <signal.h>: raise().
~ <stdlib.h>: abort().
- <assert.h>: assert().
~ Implement more of <stdio.h>:
~ <stdio.h>: feof(), fgetc(), getc(), getchar().
- Implement more of <stdlib.h>:
~ <stdlib.h>: _Exit(), exit(), atexit().
~ <stdlib.h>: quick_exit(), at_quick_exit().
- <stdlib.h>: char* getenv(const char* name), environ.
+ <stdlib.h>: abs(), labs(), llabs().
- <stdlib.h>: div(), ldiv(), lldiv().
- Implement all of <string.h>.
- Publish the manual on the website.
- Add more compilers to the Travis CI build matrix.
Other Priorities
----------------
- <errno.h> macros should correspond to the platform's numeric values.
- Detect support for __attribute__((weak)) and use it in sys/none/.
- malloc(), calloc(), realloc(), free() for all supported platforms.
Platform Support
----------------
- Solaris 11.2 on x86-64 currently requires: ./configure CC='gcc -std=c99 -m64'
- Autodetect the compiler's C11 or C99 support, setting -std=c11 or -std=c99.
Nice to Have
------------
- Sphinx :doc: cross-references ought not to get rendered with <em> tags.
POSIX.1-2008
------------
- fmemopen()
http://pubs.opengroup.org/onlinepubs/9699919799/functions/fmemopen.html
- open_memstream()
http://pubs.opengroup.org/onlinepubs/9699919799/functions/open_memstream.html
POSIX.1
-------
- brk(), sbrk() [removed in POSIX.1-2001]
http://pubs.opengroup.org/onlinepubs/7908799/xsh/brk.html
http://man7.org/linux/man-pages/man2/brk.2.html
http://groups.google.com/forum/#!topic/comp.unix.programmer/TUSc7U0UfxY
GNU Extensions
--------------
- fopencookie()
http://www.gnu.org/software/libc/manual/html_node/Streams-and-Cookies.html
http://www.gnu.org/software/gnulib/manual/html_node/fopencookie.html
http://man7.org/linux/man-pages/man3/fopencookie.3.html
- secure_getenv()
http://www.gnu.org/software/libc/manual/html_node/Environment-Access.html
http://man7.org/linux/man-pages/man3/getenv.3.html
http://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv
Linux Extensions
----------------
BSD Extensions
--------------
- strlcpy(), strlcat()
http://www.courtesan.com/todd/papers/strlcpy.html
- reallocarray()
http://lteo.net/blog/2014/10/28/reallocarray-in-openbsd-integer-overflow-detection-for-free/
- arc4random(), arc4random_buf(), arc4random_uniform(), using ChaCha20
http://www.openbsd.org/papers/hackfest2014-arc4random/
- http://en.wikipedia.org/wiki/C_standard_library#BSD_libc