-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathTODO.txt
98 lines (59 loc) · 3.25 KB
/
TODO.txt
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
--------------------------------------------------------------------------------
Haskell CnC Runtime
--------------------------------------------------------------------------------
Specific, relatively small tasks/fixes:
Things to work on:
(*) Explore why including the library into the application still
performs better than modular compilation (more inline annotation?).
(*) reorganize schedulers into separate modules
(*) Finish GMAP implementation and test it. Make it parameterize on
key & value type and try Judy arrays.
(*) put tail_putt into use and finish it for all schedulers
(*) redo scheduler #8 with continuation monad (e.g. scheduler 9)
(*) Fix scheduler 6 resulting in sched 7 which can either "heal"
lost workers periodically, or which is non-quiescent but which
has all workers spin (maybe with some sleeping) until the
finalize action is finished.
(*) Remove lingering IORef usages and replace with HotVar type.
--------------------------------------------------------------------------------
Spec Translator:
--------------------------------------------------------------------------------
Tag functions:
(*) Generate tag-function-correctess-enforcing code for all gets and puts.
[partially done] NEXT: Generalize this functionality and put it in a plugin.
Correctness checking:
(*) Detect put-before get.
Traces:
(*) This should be a a priority-candidate for conversion to ByteString.
(*) Currently the system reads traces but doesn't record them to disk
(e.g. in compressed, binary format)
(*) Ubigraph Trace visualization works but doesn't allow reversing
time and controlling playback rate.
(Many other feature enhancements here too.)
(*) NCurses UI for controlling playback. Almost finished.
(*) Synthesize .cnc spec from trace. Fit (N-dimensional, linear) tag functions to traces.
Hierarchical Partitioning (Harch):
(*) Generate code for each harch partition (which will at the very
least order the collections and allow inlining a subgraph into one
execute method).
Translation:
(*) New API is supported, but advanced optimizations remain unimplemented.
-- "Dense item collection" optimization is first on the list.
Step 1: allow user to manually say that an item collection is dense.
Step 2: infer that downstream item collections are dense
starting from dense ones + tag functions.
(*) Language features: module system, step skeletons -- not started yet.
(*) Frank had a good idea to make the generated header READ ONLY.
(*) Make specs "executable" by generating a main.cpp as well as
header. Include all info from spec.
(*) Also can look at generating Makefile and other boilerplate
for MIC targetting.
Even more experimental / future-workish:
(*) Integrate wih Parallel Advisor, adapting it so that it can
provide helpful feedback on single-assignment use of memory.
(*) Fix lexSpan so that it gets the whole token not just its start.
Melanie requested:
------------------------------------------------------------
1. A way to specify serialization/marshalling method—either bitwise
serializable or providing a user written serializer
2. A way to specify a user written hash compare