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