File: ToDo

package info (click to toggle)
nqp 2014.07-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 23,596 kB
  • ctags: 7,993
  • sloc: ansic: 22,689; java: 20,240; cpp: 4,956; asm: 3,976; perl: 950; python: 267; sh: 245; makefile: 14
file content (114 lines) | stat: -rw-r--r-- 4,238 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
0.8:
----
- Platforms:
  * PSP - build it (Tassilo), test (Daniel)
- mailing list announcements (html email?)
- manual (Tas)
- Website:
  * platform matrix (wie im Handbuch oder Daniels Disse)
- fix for NDS:
    * ARM:
      - callback_plain retval wrong (not only platform)
    * THUMB:
      - ellipsis (might be test itself, not respecting fixed part of args)
      - retvals of call_suite (maybe all retvals, in general)
      - callback_plain retval
      - callf


build-system:
-------------
- cmake mac os x universal binary builds with *.S does not build 
  multiple architectures

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

dyncall:
--------
- port ppc64
- 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
- add dcArgF, so CallF without the call; this would allow to use sig for building stack, only
  and is more flexible; bindings would benefit if statically typed as it decouples call from
  convenient stack building

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 (thunks seem to be working, but maybe buggy)
- finish PPC32 callbacks (see bugs section, below)

urgent issues:
--------------
- finish SPARC/SPARC64 calling conventions in doc's callconv-appendix !!!
- finish dyncallback doc, finish dynload doc, add both to troff doc
- 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
- consider moving bindings into dyncall/ such that releases include it in the future
  * or, alternatively, pack them separately and put them on the website, for releases
- add note to documentation, that bindings are svn-only ATM
- add pcc-support to doc
- rename configure to configure.sh (so we would have .sh, .rc and .bat in the future)

nice to have:
-------------
- enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.)
- update: microsoft visual c++ build files - integrate all test suites in solution file
- maybe rename DC__Arch_PowerPC to ...PPC32 for coherency reasons (...PPC64)?
- 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:
-----
- callbacks on ppc32 only work on apple (osx abi)
- 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):
----------------------------------------------
- ppc64
- itanium
- 68k, 88k, 6502, etc.
- alpha
- superh
- cell
- blackfin
- z80
- hppa
- vax
- atmel avr
- propeller
- amd29k
- arc
- seaforth

available hardware for outstanding ports:
-----------------------------------------
- 68k: Tassilo's old Palm m100 (MC68EZ328 (16MHz))
- sh4: Tassilo's Dreamcast
- mips R5900: Daniel's PS2
- mips (?): Daniel's router
- sigmatel stmp3550b: Daniel's iPod Nano