view ToDo @ 27:523c45dfa8fb

- refactored arm calling conventions' callvm code, so that the code that keeps the caller from overwriting the return value on some platforms also works on OpenBSD (before we casted the function pointer to have long long as return type, to hint the caller that there is one, but that triggers an intentional SIGABRT on OpenBSD for security reasons; now the decl reflects this, directly)
author cslag
date Tue, 15 Sep 2015 12:48:52 +0200
parents d9c707a699d9
children a461b6977b52
line wrap: on
line source

1.0:
----
- autovar was never really pushed all the way through and still plays second
  fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I
  removed out of sync files to avoid confusion; but still probably duped code)
- ppc32 callback fixes on bsd
- make install should install manpages
- mailing list announcements (html email?)
- fix for NDS:
    * ARM:
      - callback_plain retval wrong (not only platform)
    * THUMB:
      - ellipsis (might be test itself, not respecting fixed part of args)
      - callback_plain retval
      - callf
- fix Minix/x86 callbacks (see callback_suite)
- fix Linux/rpi callbacks (call_suite)
- armhf callback support
- armhf callconv manual entry
- add portable "make install"
- support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64
- make sure selinux works (esp. regarding NX bits, asm might need (or similar): .section .note.GNU-stack,"",@progbits)

portasm:
--------
- add solaris support for x64

dyncall:
--------
- support for return values: aggregate return values
- support for argument values: structures, half-precision, vector types, long double
- varargs for mips (might exist, but test all ABIs)
- consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS;
  this would make it easier to just pass arguments instead of having to know about the C
  type promotions
- syscalls for x64
  * bsd
  * linux
- other syscalls

dynload:
--------
- bug: test/nm crashes on qemu mips linux o32 debian etch
- test/resolve_self crashes/asserts on windows and bsds
- rename SymsInit to InitSyms and similar for cleanup function to reflect naming
  in dyncall
- get rid of Dl_info and friends (_GNU_SOURCE) in dynload/dynload_syms_elf.c
  for implementation of dlSymsNameFromValue(..)
- check if PSP can support dynload (missing elf.h, dlfcn.h, etc.); fixup readme if successful

dyncallback:
------------
- callback_plain's return value not correct anymore on NDS (maybe just broken testcode?)
- add MIPS callbacks for eabi, n32, o32 (thunks are working)
- finish PPC32 callbacks (see bugs section, below, BSD not working)

bindings:
---------
- release bindings as standalone packages (already done for rbdc as a gem and rdyncall on cran)
  * add note to documentation, where bindings are and that some bindings are svn-only ATM
- add rdoc documentation to ruby gem
- bring python up to latest
- add pydoc for python
- add manpage for shdc
- expose callf-convenience functions to go
- add godoc for godc
- bring java up to latest
- add javadoc to java
- add more bindings
- add callback support for erlang, go, java, lua, python and ruby (and shell? how?)
- add call-conv-mode-support for rbdc through signature

manual:
-------
- finish tex4ht manual generation (use \ifhtml and \ifnhtml, ...)
- provide more examples on how to use dyncall, dynload and dyncallback
  * e.g. enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.)
- manuals for bindings (as stated in bindings-section, above)

urgent issues:
--------------
- finish SPARC/SPARC64 calling conventions in doc's callconv-appendix !!!
- Haiku/gmake build doesn't build dynload due to the fact, that elf.h is not found
  on default installations (one has to install the system headers)
  * add to doc
- Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback)
- test arm32/ATPCS/THUMB (and then change Status in doc Appendix)
- look over code and fix TODO or @@@ marks
- add ppc-support to doc (both, 32 and 64, as well as little and big endian remarks)

nice to have:
-------------
- update: microsoft visual c++ build files - integrate all test suites in solution file
- consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports
- microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files)
- test/thunk: some platforms do not allow for allocation of executable code on heap and stack -- 
  currently this test will crash, maybe we should collect information which platforms allow and which not.

bugs:
-----
- callconv set specifically for platform that has only one (default) excepts for some
  platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in
  this case, works
- callbacks on ppc32 only work on linux and apple (osx abi), but not BSD
- vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag
  args should be used); adapt test/ellipsis and/or retest

missing implementations (descending priority):
----------------------------------------------
- riscv
- itanium
- 68k, 88k, 6502, etc.
- alpha
- superh
- cell
- blackfin
- s/390
- z80
- hppa
- vax
- atmel avr
- propeller
- amd29k
- arc
- seaforth