Add missing C standard library headers
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- c
- Domain
- operating-systems
Research direction
The issue is a broad checklist of missing C standard-library headers and features, with no source files, tests, or entry points named. Start by selecting one narrowly scoped unchecked header and checking its dependencies, especially the items noted as requiring additional M2-Planet implementation. Done should be defined for that specific header or feature rather than the entire checklist.
Written by the indexing model from the issue text.
Description
This isn't a shopping list of things we want implemented right now this is primarily to summarize what we have and what's missing, as well as categorize things that are unlikely to be useful.
-
assert.h-
assertmacro - (C11)
static_assertmacro
-
-
ctype.h-
isspacefunction (takescharinstead ofint) -
isalnumfunction -
isalphafunction -
isblankfunction -
iscntrlfunction -
isdigitfunction -
isgraphfunction -
islowerfunction -
isprintfunction -
ispunctfunction -
isupperfunction -
isxdigitfunction -
tolowerfunction -
toupperfunction
-
-
errno.h-
errnomacro (there is one infcntl.c) -
EDOMdefine -
EILSEQdefine -
ERANGEdefine
-
-
limits.h-
CHAR_BIT -
SCHAR_MIN -
SCHAR_MAX -
UCHAR_MIN -
UCHAR_MAX -
CHAR_MIN -
CHAR_MAX -
MB_LEN_MAX -
SHRT_MIN -
SHRT_MAX -
USHRT_MAX -
INT_MIN -
INT_MAX -
UINT_MAX -
LONG_MIN -
LONG_MAX -
ULONG_MAX -
LLONG_MIN -
LLONG_MAX -
ULLONG_MAX
-
-
setjmp.h-
setjmpmacro -
jmp_buftype -
longjmpfunction
-
-
stddef.h-
ptrdiff_ttype -
size_ttype -
NULLmacro -
max_align_ttype -
offsetofmacro
-
-
stdlib.h-
EXIT_FAILUREdefine -
EXIT_SUCCESSdefine -
callocfunction -
freefunction -
mallocfunction -
getenvfunction -
size_ttype -
div_ttype -
ldiv_ttype -
lldiv_ttype -
RAND_MAXdefine -
atoifunction -
atolfunction -
atollfunction -
strtoldfunction -
strtolfunction -
strtollfunction -
strtoulfunction -
strtoullfunction -
randfunction -
srandfunction -
reallocfunction -
abortfunction -
atexitfunction -
exitfunction -
_Exitfunction -
systemfunction -
bsearchfunction -
qsortfunction -
absfunction -
labsfunction -
llabsfunction -
divfunction -
ldivfunction -
lldivfunction
-
-
string.h-
memcpyfunction -
memmovefunction -
strcpyfunction -
strncpyfunction -
memcmpfunction -
strcmpfunction -
strlenfunction -
strncmpfunction -
memchrfunction -
strchrfunction -
strcspnfunction -
strpbrkfunction -
strrchrfunction -
strspnfunction -
strstrfunction -
strcatfunction -
strncatfunction -
memsetfunction -
strcollfunction -
strxfrmfunction -
strtokfunction -
strerrorfunction
-
-
time.h-
CLOCKS_PER_SECdefine -
TIME_UTCdefine -
clock_ttype -
time_ttype -
struct timespectype -
struct tmtype -
clockfunction -
difftimefunction -
mktimefunction -
timefunction -
timespec_getfunction -
asctimefunction -
ctimefunction -
gmtimefunction -
localtimefunction -
strftimefunction
-
-
stdio.h-
FILEtype -
BUFSIZdefine -
EOFdefine -
SEEK_CURdefine -
SEEK_ENDdefine -
SEEK_SETdefine -
stdindefine -
stdoutdefine -
stderrdefine -
getcharfunction -
fclosefunction -
fflushfunction -
fgetsfunction -
fputcfunction -
fputsfunction -
putsfunction -
ungetcfunction -
freadfunction -
fwritefunction -
fseekfunction -
ftellfunction -
rewindfunction -
TMP_MAXdefine -
fpos_ttype -
_IOFBFdefine -
_IOLBFdefine -
_IONBFdefine -
FOPEN_MAXdefine -
FILENAME_MAXdefine -
L_tmpnamdefine -
removefunction -
renamefunction -
tmpfilefunction -
tmpnamfunction -
fopenfunction -
freopenfunction -
setbuffunction -
setvbuffunction -
getcfunction -
putcfunction -
putcharfunction -
fgetposfunction -
fsetposfunction -
clearerrfunction -
feoffunction -
ferrorfunction -
perrorfunction
-
-
stdint.h-
[u]int{8,16,32}_ttype -
[u]int64_ttype -
[u]int_least{8,16,32,64}_ttype -
[u]int_fast{8,16,32,64}_ttype -
intptr_ttype -
uintptr_ttype -
intmax_ttype -
uintmax_ttype -
uintmax_ttype -
INT{8,16,32,64}_MINdefine -
[U]INT{8,16,32,64}_MAXdefine -
INT_LEAST{8,16,32,64}_MINdefine -
[U]INT_LEAST{8,16,32,64}_MAXdefine -
INT_FAST{8,16,32,64}_MINdefine -
[U]INT_FAST{8,16,32,64}_MAXdefine -
INTPTR_MINdefine -
INTPTR_MAXdefine -
UINTPTR_MAXdefine -
INTMAX_MINdefine -
INTMAX_MAXdefine -
UINTMAX_MAXdefine -
PTRDIFF_MINdefine -
PTRDIFF_MAXdefine -
SIZE_MAXdefine -
[U]INT{8,16,32,64}_Cmacro. Might be better to implement these in the compiler. -
INTMAX_Cmacro -
UINTMAX_Cmacro
-
-
signal.h, better function pointer support -
inttypes.h, variadic functions andprintfsupport
Requires additional implementation in M2-Planet
-
stdalign.h,_Alignofand_Alignassupport-
alignofmacro -
__alignas_is_defineddefine -
alignasmacro -
__alignof_is_defineddefine
-
Unlikely to be useful
-
complex.hintroduced in C99, standardized but not required. Define__STDC_NO_COMPLEX__in compiler instead. -
stdatomic.hintroduced in C11, standardized but not required. Define__STDC_NO_ATOMICS__in compiler instead. -
threads.hintroduced in C11, standardized but not required. Define__STDC_NO_THREADS__in compiler instead. -
char.hintroduced in C11 -
wchar.hintroduced in NA1 (1995) -
wctype.hintroduced in NA1 (1995) -
fenv.hintroduced in C99 -
float.hintroduced in C89 -
locale.hintroduced in C89 -
math.hintroduced in C99 -
stdbit.hintroduced in C23 -
tgmath.hintroduced in C99
- Dominant language
- C
- Stars
- 27
- Forks
- 20
- Avg merge
- 5d 12h
- Merged PRs (30d)
- 2
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from oriansj/M2libc
-
armv7l: `close`, `unlink` and `chroot` pass the kernel their argument's addressPossibly taken @aoinoikaz claimed this 5 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
`fseek` returns the new position instead of 0Possibly taken @aoinoikaz claimed this 6 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 3/5 1-2 days Newbie friendliness 62/100
-
good first issue
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 62/100
-
bug mod: circuit
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
msys2/MINGW-packages#33356 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
facebookincubator/muse-gadget-sdk#355 ·
Maintainers usually reply within 4 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
kmod-project/kmod#492 ·
Maintainers usually reply within 4 days