forked from serge-sans-paille/pythran
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
95 lines (64 loc) · 2.87 KB
/
TODO
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
====
TODO
====
Plenty of ideas for the brave! If you want to work on one of these, please
tell ``pythran@freelists.org`` before, as it is good to discuss before coding!
Detect positive array indexing
------------------------------
*long-term job for serge-sans-paille*
When indexing a list / array::
a[i]
there is a sign test involved over ``i``. However in may cases, such as::
for i in range(len(a)):
a[i] += 1
it is possible to statically ensure that ``i >=0``. Beware, this requires array
preconditions analysis.
Support ``random`` module
-------------------------
The ``random`` module should be completely supported. Take into account parallelism!
Support ``str`` module
-------------------------
Because current implementation sucks. Not that important for the kind of code
we target, but still...
Automatic vectorization of list comprehension
---------------------------------------------
Because when you see::
[x*x for x in l]
you **must** think: what a good vectorization opportunity!
Support ``import a_user_module``
--------------------------------
So that Pythran user can split their code base into several files. This should
not require that much work, but a good understanding (and a slight rework) of
the module management in Pythran.
Distutils integration
---------------------
There is an extension mechanism in ``distutils`` to compile native modules when
running ``setup.py``. Pythran should provide a compatibility layer. There is a
first draft in the europar2013 branch, this is an easy go for newcomers.
Pythran tutorial
----------------
Building a tutorial that makes it easier to understand Pythran usage would be
nice. As Pythran is sooooooo easy to use, that should not be hard, so to make
the task more interesting, the tutorial should be automatically tested when
running ``setup.py test``.
Named arguments
---------------
Named arguments are not supported in Pythran... Yet! Alias aliasing to the rescue!
Performance issues detection
----------------------------
There is a big benchmark / test cases codebase in Pythran. We should monitor it
and detect performance bottleneck, as well as track speedup changes upon new
commits.
Try Except around import module statements
------------------------------------------
When we use Try Except around an import module statement, it is possible to have
a specific behaviour if the imported modules doesn't exist (using sur ImportError
exception).
While pythran, raise an error if module doesn't exist, it should branch in the
except part of the code.
ConstantFolding timeout
-----------------------
Sometime we can have a code which compute a constant but it is really long and
we want to compile it to have the result faster. For now, pythran will compute
it through CPython which makes it slower. A time out can avoid this issue.
It might be possible to save current computation at the end of the timeout.