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