Mercurial > pub > dyncall > dyncall
comparison ToDo @ 370:fa78490381f3
todo update
author | Tassilo Philipp |
---|---|
date | Sat, 19 Dec 2020 20:02:08 +0100 |
parents | ad5f9803f52f |
children | 8b331d3382aa |
comparison
equal
deleted
inserted
replaced
369:26aa936d4841 | 370:fa78490381f3 |
---|---|
1 1.2: | 1 1.2: |
2 ---- | 2 ---- |
3 - macOS ARM support (e.g. Apple M1 - might already work) + manual overview + appendix update | |
3 - test atpcs thumb on arm and verify if ellipsis and C++ thiscalls work, if so adapt doc appendix | 4 - 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 | 5 - test eabi thumb on arm and verify if ellipsis and C++ thiscalls work, if so adapt doc appendix |
5 - new platform matrix | 6 - new platform matrix |
6 * check dark green cells and validate in general | 7 * 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 - openbsd-4.0-* test/resolve_self fails, but unsure why. dlopen correctly returns RTLD_DEFAULT, which |
14 - support platforms without shared libraries so they can be built by just typing `./configure;make` (e.g. minix < 3.2.1) | 15 - 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) | 16 * 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 - 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 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 to cast to the function type? need to support? |
19 | |
20 - dyncall sparc v7/v8: -xO3 on SunPro segfaults in tests (observed years ago) | |
21 | |
22 - dyncallback's "stack_cleanup" can be removed from non x86 impls... test if they still work | 20 - dyncallback's "stack_cleanup" can be removed from non x86 impls... test if they still work |
23 - target a minimum c version, for use with -pedantic, etc.? Right now we use e.g. extensions | 21 - target a minimum c version, for use with -pedantic, etc.? Right now we use e.g. extensions |
24 for anon structs, etc. -> we do now target c99 | 22 for anon structs, etc. -> we do now target c99 |
25 - the CallVM-free functions are per VTable, however the latter can be changed out | 23 - the CallVM-free functions are per VTable, however the latter can be changed out |
26 at runtime... which basically changes potentially the deallocator... | 24 at runtime... which basically changes potentially the deallocator... |
35 - autovar was never really pushed all the way through and still plays second | 33 - autovar was never really pushed all the way through and still plays second |
36 fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I | 34 fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I |
37 removed out of sync files to avoid confusion; but still probably duped code) | 35 removed out of sync files to avoid confusion; but still probably duped code) |
38 - add portable "make install" | 36 - add portable "make install" |
39 * make install should also install manpages | 37 * make install should also install manpages |
40 - mailing list announcements (html email?) | |
41 - fix for NDS: | 38 - fix for NDS: |
42 * ARM: | 39 * ARM: |
43 - callback_plain retval wrong (not only platform), area on stack where | 40 - callback_plain retval wrong (not only platform), area on stack where |
44 it's stored is probably not zeroed, so half-words, etc., come with garbage | 41 it's stored is probably not zeroed, so half-words, etc., come with garbage |
45 * THUMB: | 42 * THUMB: |
48 - callf | 45 - callf |
49 - support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64 | 46 - support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64 |
50 - make sure selinux works (esp. regarding NX bits) | 47 - make sure selinux works (esp. regarding NX bits) |
51 Daniel has a patch for it, if needed, implementing allocwx with two memory blocks, one for w^x, mmaped to one for r|x | 48 Daniel has a patch for it, if needed, implementing allocwx with two memory blocks, one for w^x, mmaped to one for r|x |
52 - support /SAFESEH on cl/win32 | 49 - support /SAFESEH on cl/win32 |
53 - test code functions should be in .so files, optionally, so the suites can directly | 50 - test code functions should be in .so files, optionally, so the suites can directly be used to test dyncall bindings |
54 be used to test dycnall bindings | |
55 - pkg-config support? | 51 - pkg-config support? |
56 - quadmath support (long double) | |
57 - add tests using alloca(), as this might depend on the frame pointer being correctly set (we don't | 52 - add tests using alloca(), as this might depend on the frame pointer being correctly set (we don't |
58 check for this, currently, at all - but might not affect dyncall's stubs, anyways) - verify | 53 check for this, currently, at all - but might not affect dyncall's stubs, anyways) - verify |
59 | 54 |
60 portasm: | 55 portasm: |
61 -------- | 56 -------- |
62 - add solaris support for x64 | 57 - add solaris support for x64 |
63 | 58 |
64 dyncall: | 59 dyncall: |
65 -------- | 60 -------- |
61 - callf test crashing on OmniOS | |
62 - dyncall sparc v7/v8: -xO3 on SunPro segfaults in tests (observed years ago) | |
66 - callbacks and use of CC signature characters (only x86 has any support for different CCs for callbacks): | 63 - callbacks and use of CC signature characters (only x86 has any support for different CCs for callbacks): |
67 * support for arm (arm/thumb on same platform) | 64 * support for arm (arm/thumb on same platform) |
68 * check if ellipsis support is needed (is there any need for calling back into an ellipse function?) | 65 * check if ellipsis support is needed (is there any need for calling back into an ellipse function?) |
69 * check if syscalls support is needed (is there any need for calling back into a syscall?) | 66 * check if syscalls support is needed (is there any need for calling back into a syscall?) |
70 - think about using 'inline' for all/most dyncall_api.c functions? | 67 - think about using 'inline' for all/most dyncall_api.c functions? |
73 - x64 verification: return values are passed via RAX and RDX, and XMM0 and XMM1. | 70 - x64 verification: return values are passed via RAX and RDX, and XMM0 and XMM1. |
74 - find big endian arm box (also hardfloat), e.g. cubietruck: http://blog.netbsd.org/tnf/entry/working_arm_multiprocessor_support | 71 - find big endian arm box (also hardfloat), e.g. cubietruck: http://blog.netbsd.org/tnf/entry/working_arm_multiprocessor_support |
75 - test if armhf/thumb is actually working... pulls in arm mode code in dyncall_callvm.c | 72 - test if armhf/thumb is actually working... pulls in arm mode code in dyncall_callvm.c |
76 - dyncall_call_mips_n32.h and dyncall_call_mips_n64.h are pretty much the same, share code | 73 - dyncall_call_mips_n32.h and dyncall_call_mips_n64.h are pretty much the same, share code |
77 - support for return values: aggregate return values | 74 - support for return values: aggregate return values |
78 - support for argument values: structures, half-precision, vector types, long double | 75 - support for argument values: structures, half-precision, vector types, long double (c89) |
76 - support for argument values: _Complex (c99) | |
77 - support for argument values: Fixed-width integer types (c99) - could be just aliases but would help abstracting it away from library users | |
79 * make sure that struct support for ellipsis calls are not forgotten (copy everything by value) | 78 * make sure that struct support for ellipsis calls are not forgotten (copy everything by value) |
80 - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS; | 79 - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS; |
81 this would make it easier to just pass arguments instead of having to know about the C | 80 this would make it easier to just pass arguments instead of having to know about the C |
82 type promotions (this is partly done, see todo-item above under 1.1) | 81 type promotions (this is partly done, see todo-item above under 1.1) |
83 - other syscalls | 82 - other syscalls |