Mercurial > pub > dyncall > dyncall
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 |