comparison ToDo @ 640:b42cee4358fc

- release prep
author Tassilo Philipp
date Tue, 06 Dec 2022 21:07:14 +0100
parents 13475895a79b
children a111a62e20fd
comparison
equal deleted inserted replaced
639:191aeb9d3bff 640:b42cee4358fc
1 1.4: 1 1.5:
2 ---- 2 ----
3 - test atpcs thumb on arm and verify if ellipsis and C++ thiscalls work, if so adapt doc appendix 3 - test atpcs thumb on arm and verify if ellipsis and C++ thiscalls work, if so adapt doc appendix
4 - test eabi thumb on arm and verify if ellipsis and C++ thiscalls work, if so adapt doc appendix 4 - test eabi thumb on arm and verify if ellipsis and C++ thiscalls work, if so adapt doc appendix
5 - new platform matrix 5 - new platform matrix
6 * check dark green cells and validate in general 6 * check dark green cells and validate in general
7 - openbsd-4.0-* test/resolve_self fails, but unsure why. dlopen correctly returns RTLD_DEFAULT, which
8 should lookup via dlsym the function in the object itself, but cannot. So... some compiler flag might
9 be missing to keep symbol names, or some prefixing happens
10 - test/thunk win/x64 doesn't output anything decent for stack test (neither sigsegv nor output), which can create a problem for test log file as it'll mess with the subsequent test's output) 7 - test/thunk win/x64 doesn't output anything decent for stack test (neither sigsegv nor output), which can create a problem for test log file as it'll mess with the subsequent test's output)
11 - remove test/gen-masm alltogether 8 - remove test/gen-masm alltogether
12 - test code: add sparc tests for when out of register windows, meaning multiple layers deep in the call stack 9 - test code: add sparc tests for when out of register windows, meaning multiple layers deep in the call stack
13 - ./configure on macOS does not pass CFLAGS etc.. to Makefile.config
14 - support platforms without shared libraries so they can be built by just typing `./configure;make` (e.g. minix < 3.2.1) 10 - support platforms without shared libraries so they can be built by just typing `./configure;make` (e.g. minix < 3.2.1)
15 * also make sure minix with shared library support builds and works in general (>= 3.2.1) as well as ELF on Minix (>= 3.2.0) to begin with (as that's the base, and we only test on 3.1.8 so far) 11 * also make sure minix with shared library support builds and works in general (>= 3.2.1) as well as ELF on Minix (>= 3.2.0) to begin with (as that's the base, and we only test on 3.1.8 so far)
16 - dyncall supports calls to functions where prototype exists (with and without varargs); however not when no
17 prototype exist (e.g. just calling some pointer), without any declaration... even possible in C, as one has
18 to cast to the function type? need to support?
19 - dyncallback's "stack_cleanup" can be removed from non x86 impls... test if they still work 12 - dyncallback's "stack_cleanup" can be removed from non x86 impls... test if they still work
20 - target a minimum c version, for use with -pedantic, etc.? Right now we use e.g. extensions
21 for anon structs, etc. -> we do now target c99
22 - the CallVM-free functions are per VTable, however the latter can be changed out 13 - the CallVM-free functions are per VTable, however the latter can be changed out
23 at runtime... which basically changes potentially the deallocator... 14 at runtime... which basically changes potentially the deallocator...
24 same goes for functions setting the mode. think about how to make this safer - currently 15 same goes for functions setting the mode. think about how to make this safer - currently
25 we have a higher flexibility and we need to potentially clean up from the mode we are in, 16 we have a higher flexibility and we need to potentially clean up from the mode we are in,
26 however, this is open to misuse 17 however, this is open to misuse
67 - merge arm32_thumb_{gas/apple} and include thumb support for portasm 58 - merge arm32_thumb_{gas/apple} and include thumb support for portasm
68 - x64 verification: return values are passed via RAX and RDX, and XMM0 and XMM1. 59 - x64 verification: return values are passed via RAX and RDX, and XMM0 and XMM1.
69 - find big endian arm box (also hardfloat), e.g. cubietruck: http://blog.netbsd.org/tnf/entry/working_arm_multiprocessor_support 60 - find big endian arm box (also hardfloat), e.g. cubietruck: http://blog.netbsd.org/tnf/entry/working_arm_multiprocessor_support
70 - test if armhf/thumb is actually working... pulls in arm mode code in dyncall_callvm.c 61 - test if armhf/thumb is actually working... pulls in arm mode code in dyncall_callvm.c
71 - dyncall_call_mips_n32.h and dyncall_call_mips_n64.h are pretty much the same, share code 62 - dyncall_call_mips_n32.h and dyncall_call_mips_n64.h are pretty much the same, share code
72 - support for return values: aggregate return values 63 - support for return values: aggregate return values on non-x64
73 - support for argument values: structures, half-precision, vector types, long double (c89) 64 - support for argument values: aggregates on non-x64, vector types, long double (c89)
65 * make sure that struct support for ellipsis calls are not forgotten (copy everything by value)
74 - support for argument values: _Complex (c99) 66 - support for argument values: _Complex (c99)
75 - support for argument values: Fixed-width integer types (c99) - could be just aliases but would help abstracting it away from library users 67 - support for argument values: Fixed-width integer types (c99) - could be just aliases but would help abstracting it away from library users
76 * make sure that struct support for ellipsis calls are not forgotten (copy everything by value)
77 - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS;
78 this would make it easier to just pass arguments instead of having to know about the C
79 type promotions (this is partly done, see todo-item above under 1.1)
80 - other syscalls 68 - other syscalls
81 - test MIPS32 eabi big endian (current port works on psp, which is little endian) 69 - test MIPS32 eabi big endian (current port works on psp, which is little endian)
82 - implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and 70 - implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and
83 EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter) 71 EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter)
84 - MIPS64 n32 softfloat support (-msoft-float) 72 - MIPS64 n32 softfloat support (-msoft-float)
178 bugs: 166 bugs:
179 ----- 167 -----
180 - setting callconv, specifically for platforms that have only one (default)) excepts on some 168 - setting callconv, specifically for platforms that have only one (default)) excepts on some
181 platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in 169 platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in
182 this case, works (this should work now...) 170 this case, works (this should work now...)
183 - vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag
184 args should be used); adapt test/ellipsis and/or retest
185 171
186 missing implementations (descending priority): 172 missing nice-to-have implementations (descending priority):
187 ---------------------------------------------- 173 -----------------------------------------------------------
188 - riscv 174 - riscv
189 - itanium 175 - itanium
190 - superh/j-core 176 - superh/j-core
191 - 68k, 88k, 6502, etc. 177 - 68k, 88k, 6502, etc.
192 - arc 178 - arc