Fix reversed interrupt vector name
[viridis.git] / TODO
1 == TODO ==
2
3 These are notes for stuff that's already been implemented, but perhaps have
4 caveats or haven't received the attention they deserve yet. Everything else
5 would effectively amount to "support all hardware" which goes without saying.
6
7 = MM =
8 - virtually contiguous page allocators need testing
9
10 - Unsure if we've ever hit the bad memory case for page_alloc functions, need
11   to make sure reserve_region works after init, or potentially get page_alloc_phys
12   to do the bad memory check itself.
13
14 - The page allocator uses an absurd (0.3%) of memory for overhead, and should
15   be made to call itself if it needs more structs to track allocations instead
16   of one gigantic alloc. Right now this is only okay because it's simple and we
17   don't really have a usecase for the other 99.7% of memory yet.
18
19 - Domain allocators will natively align "near" allocations. This makes sense
20   for the virtual address space allocator (since you're handing out blocks of
21   memory), but if we have another usecase the concept of alignment is
22   non-existent. For example, if we used a domain to hand out IRQs, getting a set
23   of 2 IRQs shouldn't have to return a first IRQ that's a multiple of 2.
24
25 - Objcache won't automatically free memory back to the page allocators when all
26   of the objects have been freed. Currently, will only release on destroy().
27
28 = Vua (aside from being incomplete) =
29
30 - Hex and decimal embedded escapes in the string lexer
31
32 - String implementation for massive strings
33
34 - Signed math and overflow warnings in constant folding
35
36 - Parser leaks expr memory (if lexer stringbuf is grabbed)
37
38 - Error handling needs more nuance than even LuaJIT
39
40 - binop parsing is recursive and need more stack size limits
41
42 - Table implementation doesn't balance hash size automatically