forked from pypyjs/pypyjs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.txt
51 lines (33 loc) · 1.59 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
developer niceties:
* high-level intro to the various modules, where they live
and what they do
SOON:
* manually extract the memory initializer and put it somewhere we
can load it easily.
* get all the testcases passing again
* name the memory file after a hash of its contents, to avoid
weirdness from caching an incorrect version of the file
* async script loading, so it compiles off main thread
improve the jitted code:
* compile everything into a single module to avoid func call overhead
* generate switch or if or something else depending on the conditions
that we're actually processing, rather than always doing a switch.
* avoid lots of pointless swapping of variables
* suspended exprs to reduce variable pressure
* tighten up code around func calls
* don't use the frame for gcroot, to reduce need for write barrier?
* don't spill things to frame if they're already there
* shared helper code for failing guards?
* remove unneeded conversions to unsigned e.g. in write barrier?
* reduce number of comparisons in write barrier
* somehow reduce overhead of dynCall_XXX()?
* maybe send relevant funcs into the jitted code via plt?
EVENTUALLY:
* pypy thinks we have st_atim, when we don't
* sizeof off_t is not longlong
* use emscripten_get_now() for performance timing?
* use emscripten_sleep() for sleeping
* have to figure out the "stack check" thing and what I need to do to
make it work in the jit, and in js in general (I think this is the thing
that raises a nice python-level error when you recurse too much)
* using closure on the compiled shell