-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathkit.tasks
70 lines (63 loc) · 2.66 KB
/
kit.tasks
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
* meta
[ ] BUG: see "correct types" test case
[?] some arrays still not being serialized/deserialized correctly
[-] switch keys to bimap for faster removal key changes
# may need to do some research first... (drop-in won't work)
[|] json serialization (recursive)
[ ] use pure flag for json hint (serialize as [] vs. {}?)
[.] fast type check instead of branching -- use typeid as offset
[.] containers (vectors, maps?)
[-] faster index-in-parent look-up, possibly cached
# update: don't actually need this anymore with weak-locking system
# ---
# ensure the parent pointer is respected in disconnect routines
# incorporate m_IndexOfSelfInParent in add(), set(), etc.?
[x] path
# example: meta->path("this.is.a.path")
[ ] path array indices
# example: meta->path("items[3].subitems[1]")
[ ] subdocument loading with a path
# example: Meta("file.json:path.here")
[-] binary
[-] serial
[-] deserial
[|] Meta::Serializable
[|] serialization
[x] impl
[ ] test
[|] deserialization
[x] impl
[ ] test
* iteration
[-] move each() to .cpp file -- inl now
[-] each_of_type<>() -- each() with check function isn't good enough?
[-] any iteration -- each() is fine
[L] input stream errors are vague and should include filename
* args
[x] Test cases for single-char switches
[L] .meta() -- create metaobject based on args
* kit.h (util)
* async
[ ] event lib + wakeup
[x] stabilization of "idle" tasks (no CPU revving)
[x] change sleep() -> CondVar.wait_for()
# because: stabilization should't increase latency of non-idle tasks on same circuit
[ ] allow (optional) additional circuits
# socket-specific (for select() call optimization)
# usage: disk-specific, blocking checks (low latency)
# adding circuits will create contention on ThreadID->Circuit map,
# so this is for long-running bg threads
# or maybe: adding additional map for more circuits
[-] fix helgrind-reported reporting race condition(s)
# may be false positive ^
[-] task() and when() return scoped connections instead of future?
* log
[ ] scoped log props are unusable across coroutines
# in order to fix we need Log coroutine_local data
* freq
[ ] Timelines and Alarms must be wrap-safe, if we're ever going to use this
# for async's sleep mechanism
[L] Longer scheduling (days, months) would be nice
[L] Persistent timelines and alarms using serialization
* reactive
[ ] scoped slot removal