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