c32d2430d1ddbbb530388caee24a5a00190d9438
[mate.git] / doc / TODO
1 (l) proper java native interface (JNI)
2         -> atm just hackish solution.
3         -> also, arguments are passed in the wrong order
4         -> estimated effort: 3-4 days
5
6 (l) exceptions
7         -> for gnu classpath absolutely necessary
8         -> estimated effort: unknown
9
10 (l) gnu classpath integration
11         -> would be awwwesome
12         -> depends on: exceptions, jni (?)
13         -> estimated effort: unknown
14
15 (m) testing: hunit? quickcheck? other?
16         -> we have `make tests' now, but it should be only considered as
17            high-level test. we need something
18         -> estimated effort: for infrastructure, 2-3 days
19
20 (l) instanceof, checkcast
21         -> typechecking at runtime. with displays or something
22         -> depends on: exceptions (not absolutely necessary, but preferable)
23         -> estimated effort: 1 day
24
25 (h) bug (?): can there be a namespace clash with static and non-static methods?
26         -> the signature doesn't contain the static modifier
27         -> estimated effort: some hours (if a fix is needed)
28
29 (h) global map hack:
30         -> it's an stupid and ugly hack. we don't want that.
31         -> estimated effort: unknown. research for a solution is needed
32
33 (l) cabal file
34
35 (h) so much cleanup...
36         -> define constant for native size stuff
37         -> and much more
38
39 (m) enable easy recompiliation of a method
40         -> we need a map where all callers are stored
41            in order to patch those to the new address
42         -> free old code region. maybe replace it with
43            some magic values, e.g. which produce a signal
44            in order to enable easier debugging
45
46 (h) get rid of trap.c
47         -> it's C. we don't want that.
48         -> at the moment System.Posix.Signal isn't powerful enough
49         -> wait for: http://hackage.haskell.org/trac/ghc/ticket/2451
50
51 (l) check different types (byte, long, ...)
52
53 (l) get rid of CUInt where appropriate
54         -> CPtrdiff and CSize (ptrdiff_t and size_t) is more portable
55
56 (l) floating point support
57
58 (h) better code generation
59         -> at least peephole optimazation would be nice (e.g. kill `push eax; pop
60         eax')
61         -> but we want more!!11 ;-)
62         -> estimated effort: 2-3 weeks
63
64 (m) benchmark for presentation
65
66 (l) get rid of missingh
67         -> huge dependency and we just need one function of it
68
69
70 (l) ... low priority
71 (m) ... medium priority
72 (h) ... high priority
73
74
75 what we won't do anytime soon:
76 ( ) garbage collection
77 ( ) thread support
78 ( ) verifier
79
80
81
82 /* old stuff */
83 Design Meeting - 21.March.2012
84
85
86 1) Compile on Basic Blocks on Demand or complete Methods (check how cacao, mono works)
87 2) Calling-Conventions - Standard wegen den Sprüngen (why does Cacao use strange CallingConventions)
88 3) Capture Meta-Information by Instruction and Basics-Block
89 4) Benchmark Suits - what features do we need?
90 5) Boehm GC? using Haskell GC? From Scratch GC? GC option
91 6) hs-java reinschauen - kann das schon BBA
92
93
94 TODO: Basic-Block Analyis, Dereferencing .class file shit - during or after BBA,