blob: e276d42b8ec9d0349267f153d33935cc3fca204c (
plain) (
blame)
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
|
functions to lock and unlock pages (3.4.3 p76)
character class determination for wide characters (4.3 p82)
collation functions (5.6 p109)
encode binary data (5.11 p125)
argz and envz vectors (5.12 p127)
characer-set handling (6 p133)
locales and internationalisation (7 p181)
mathematics (8 p243)
arithmetic functions (9 p243)
date and time (10 p277)
message translation (11 p315)
searching and sorting (12 p343)
pattern matching (13 p355)
the basic program–system interface (14 p379)
input/output overview (15 p429)
input/output on streams (17 p439)
It should be possible to configure malloc, calloc, and
realloc to allocate some extra space. This is usable
for single-threaded allocations; they do not need to
realloc strings returned by functions with
__attribute__((malloc)), to append a string or character.
LOW PRIORITY:
debugging support (16 p435)
_GNU_SOURCE, system-dependant
void* extalloca(void* p, size_t extent) :: extend alloca-allocation
requires that nothing has been allocated to the stack since p.
difficult to implement as a function.
as a macro:
({ void* q = alloca(extent); (long int)q < (long int)p ? q : p; })
void* dealloca(size_t amount)
deallocate the last amount bytes allocated to the stack
void* zalloca(size_t size)
difficult to implement as a function.
as a macro:
({ void* p = alloca(size); memset(p, 0, size); })
crt0 with cpu cycle count printing
BUFSIZ configurable by environment variable
Rate limitation of I/O-functions configured by environment variables
configuration: unlink = shred if st_nlink=1
The width of intptr_t should be determined by sizeof(void*),
the width of size_t should be determined by sizeof(sizeof(0)), and
the width of ptrdiff_t should be determined by sizeof(NULL - NULL);
libslibc
library with all slibc-extension. <slibc.h>
Extensions:
mkdir -p
Variable argument max and min
base64
base64 -d
base16
base16 -d
variable argument string concat
string manipulation
POSIX specifies that *printf shall fail with EOVERFLOW is the
length of the constructed string is greater than INT_MAX.
We shall follow this, but it should optional to truncate the
value to INT_MAX. Programs should not have to limit the
resulting string to 32765 bytes!
Can we implement any of these:
http://www.gnu.org/fun/jokes/errno.2
Macros that are used but not defined:
_LINUX_
|