todo: update
[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) floating point support
54
55 (h) better code generation
56         -> at least peephole optimazation would be nice (e.g. kill `push eax; pop
57         eax')
58         -> but we want more!!11 ;-)
59         -> estimated effort: 2-3 weeks
60
61 (m) benchmark for presentation
62
63 (l) get rid of missingh
64         -> huge dependency and we just need one function of it
65
66
67 (l) ... low priority
68 (m) ... medium priority
69 (h) ... high priority
70
71
72 what we won't do anytime soon:
73 ( ) garbage collection
74 ( ) thread support
75 ( ) verifier
76
77
78
79 /* old stuff */
80 Design Meeting - 21.March.2012
81
82
83 1) Compile on Basic Blocks on Demand or complete Methods (check how cacao, mono works)
84 2) Calling-Conventions - Standard wegen den Sprüngen (why does Cacao use strange CallingConventions)
85 3) Capture Meta-Information by Instruction and Basics-Block
86 4) Benchmark Suits - what features do we need?
87 5) Boehm GC? using Haskell GC? From Scratch GC? GC option
88 6) hs-java reinschauen - kann das schon BBA
89
90
91 TODO: Basic-Block Analyis, Dereferencing .class file shit - during or after BBA,