Mercurial > pub > dyncall > dyncall
annotate ToDo @ 84:67961454902b
- bigger cleanup in callvm code
* changed init of most callvms to reuse code and for consistency
* removed unused functions
* general changes for consistency
* added some missing cconv defines do mode calls
- fixed potential buffer overrun on arm64
- fixed sparc and x64 mode setting (only one mode, but wasn't (pointlessly) resettable)
- error code handling (dcGetError) changes, flag is now cleared (work still underway)
- Changelog update
| author | cslag |
|---|---|
| date | Wed, 06 Apr 2016 00:21:51 +0200 |
| parents | 54930a037e8a |
| children | 8439d9e57d08 |
| rev | line source |
|---|---|
| 0 | 1 1.0: |
| 2 ---- | |
| 84 | 3 - !!! the CallVM-free functions are per VTable, however the latter can be changed out |
| 4 at runtime... which basically changes potentially the deallocator... | |
| 5 same goes for functions setting the mode. think about how to make this safer - currently | |
| 6 we have a higher flexibility and we need to potentially clean up from the mode we are in, | |
| 7 however, this is open to misuse | |
| 8 - !!! dcGetError flags get set, but not unset after successful calls | |
| 78 | 9 - check all vararg calling conv implementations if they promote correctly |
| 10 (e.g. float to double); we used to not care as it was the user's job to | |
| 11 think of that, but we allow users to use ArgFloat, etc. on "..." now, | |
| 12 taking care of the promotion; so it should be consistent all across the | |
| 13 implementations -> also write testcode specifically for that | |
| 0 | 14 - autovar was never really pushed all the way through and still plays second |
| 9 | 15 fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I |
| 16 removed out of sync files to avoid confusion; but still probably duped code) | |
| 0 | 17 - ppc32 callback fixes on bsd |
| 69 | 18 - add portable "make install" |
| 19 * make install should also install manpages | |
| 0 | 20 - mailing list announcements (html email?) |
| 21 - fix for NDS: | |
| 69 | 22 * ARM: |
| 23 - callback_plain retval wrong (not only platform) | |
| 24 * THUMB: | |
| 25 - ellipsis (might be test itself, not respecting fixed part of args) | |
| 26 - callback_plain retval | |
| 27 - callf | |
| 0 | 28 - fix Minix/x86 callbacks (see callback_suite) |
| 54 | 29 - armhf ellipsis: fix weirdness with long long as first ... arg |
| 24 | 30 - support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64 |
| 31 - make sure selinux works (esp. regarding NX bits, asm might need (or similar): .section .note.GNU-stack,"",@progbits) | |
| 54 | 32 Daniel has a patch for it, if needed, implementing allocwx with two memory blocks, one for w^x, mmaped to one for r|x |
| 68 | 33 - support /SAFESEH on cl/win32 |
|
83
54930a037e8a
- PPC64 single-precision float fixes for more than 13 float args (thanks Masanori!)
cslag
parents:
78
diff
changeset
|
34 - test code functions should be in .so files, optionally, so the suites can directly |
|
54930a037e8a
- PPC64 single-precision float fixes for more than 13 float args (thanks Masanori!)
cslag
parents:
78
diff
changeset
|
35 be used to test dycnall bindings |
|
54930a037e8a
- PPC64 single-precision float fixes for more than 13 float args (thanks Masanori!)
cslag
parents:
78
diff
changeset
|
36 - pkg-config support? |
| 0 | 37 |
| 38 portasm: | |
| 39 -------- | |
| 40 - add solaris support for x64 | |
| 41 | |
| 42 dyncall: | |
| 43 -------- | |
| 44 - support for return values: aggregate return values | |
| 45 - support for argument values: structures, half-precision, vector types, long double | |
| 46 - varargs for mips (might exist, but test all ABIs) | |
| 47 - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS; | |
| 48 this would make it easier to just pass arguments instead of having to know about the C | |
| 49 type promotions | |
| 50 - syscalls for x64 | |
| 51 * bsd | |
| 52 * linux | |
| 53 - other syscalls | |
| 54 | |
| 55 dynload: | |
| 56 -------- | |
| 57 - bug: test/nm crashes on qemu mips linux o32 debian etch | |
| 58 - test/resolve_self crashes/asserts on windows and bsds | |
| 59 - rename SymsInit to InitSyms and similar for cleanup function to reflect naming | |
| 60 in dyncall | |
| 61 - get rid of Dl_info and friends (_GNU_SOURCE) in dynload/dynload_syms_elf.c | |
| 62 for implementation of dlSymsNameFromValue(..) | |
| 63 - check if PSP can support dynload (missing elf.h, dlfcn.h, etc.); fixup readme if successful | |
| 84 | 64 - some functionality like java's System.mapLibraryName('name') might be helpful? |
| 0 | 65 |
| 66 dyncallback: | |
| 67 ------------ | |
| 68 - callback_plain's return value not correct anymore on NDS (maybe just broken testcode?) | |
| 69 - add MIPS callbacks for eabi, n32, o32 (thunks are working) | |
| 21 | 70 - finish PPC32 callbacks (see bugs section, below, BSD not working) |
| 0 | 71 |
| 72 bindings: | |
| 73 --------- | |
| 74 - release bindings as standalone packages (already done for rbdc as a gem and rdyncall on cran) | |
| 75 * add note to documentation, where bindings are and that some bindings are svn-only ATM | |
| 76 - add rdoc documentation to ruby gem | |
| 77 - add pydoc for python | |
| 78 - add manpage for shdc | |
| 79 - expose callf-convenience functions to go | |
| 80 - add godoc for godc | |
| 81 - add javadoc to java | |
| 82 - add more bindings | |
| 83 - add callback support for erlang, go, java, lua, python and ruby (and shell? how?) | |
| 84 - add call-conv-mode-support for rbdc through signature | |
| 85 | |
| 86 manual: | |
| 87 ------- | |
| 88 - finish tex4ht manual generation (use \ifhtml and \ifnhtml, ...) | |
| 89 - provide more examples on how to use dyncall, dynload and dyncallback | |
| 90 * e.g. enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.) | |
| 91 - manuals for bindings (as stated in bindings-section, above) | |
| 92 | |
| 93 urgent issues: | |
| 94 -------------- | |
| 95 - finish SPARC/SPARC64 calling conventions in doc's callconv-appendix !!! | |
| 96 - Haiku/gmake build doesn't build dynload due to the fact, that elf.h is not found | |
| 97 on default installations (one has to install the system headers) | |
| 98 * add to doc | |
| 99 - Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback) | |
| 100 - test arm32/ATPCS/THUMB (and then change Status in doc Appendix) | |
| 101 - look over code and fix TODO or @@@ marks | |
| 102 - add ppc-support to doc (both, 32 and 64, as well as little and big endian remarks) | |
| 103 | |
| 104 nice to have: | |
| 105 ------------- | |
| 106 - update: microsoft visual c++ build files - integrate all test suites in solution file | |
| 107 - consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports | |
| 108 - microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files) | |
| 109 - test/thunk: some platforms do not allow for allocation of executable code on heap and stack -- | |
| 110 currently this test will crash, maybe we should collect information which platforms allow and which not. | |
| 111 | |
| 112 bugs: | |
| 113 ----- | |
| 6 | 114 - callconv set specifically for platform that has only one (default) excepts for some |
| 115 platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in | |
| 116 this case, works | |
| 0 | 117 - callbacks on ppc32 only work on linux and apple (osx abi), but not BSD |
| 118 - vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag | |
| 119 args should be used); adapt test/ellipsis and/or retest | |
| 120 | |
| 121 missing implementations (descending priority): | |
| 122 ---------------------------------------------- | |
| 123 - riscv | |
| 124 - itanium | |
| 125 - 68k, 88k, 6502, etc. | |
| 126 - alpha | |
| 127 - superh | |
| 128 - cell | |
| 129 - blackfin | |
| 21 | 130 - s/390 |
| 0 | 131 - z80 |
| 132 - hppa | |
| 133 - vax | |
| 134 - atmel avr | |
| 135 - propeller | |
| 136 - amd29k | |
| 137 - arc | |
| 138 - seaforth | |
| 139 |
