[pythran] Re: todo share

  • From: serge Guelton <serge.guelton@xxxxxxxxxxxxxxxx>
  • To: pythran@xxxxxxxxxxxxx
  • Date: Wed, 19 Mar 2014 16:51:14 +0100

On Wed, Mar 19, 2014 at 04:36:31PM +0100, Pierrick Brunet wrote:
> Hi,
> 
> As we speak with serge on IRC about our TODO list, Here is mine.
> Sorry, it is in french ;-)
> Some points may be just a check ;-)

Here is mine. I have commented yours ;-)

1. Track codes where parakeet performs better than we do
2. more numpy test case from stackoverflow
3. BOOST.SIMD & numpy, returns
4. OMP & numpy, returns

i'd like to make a release of Pythran once 1. is finished, and the
current PR merged.

> 
> Pierrick

> 2. Utilisation du used-def chain pour supprimer le code inutile
I don't feel a huge need for this one

> 3. Amélioration des slices par un get(i) qui calcul pas la même chose si le 
> step est de 1.
C'est partiellement impélmenté avec les contiguous slice

> 4. codespeed
à relier à mes 1-2-3-4 ?

> 5. use generic_visitor in openmp.py
?
> 6. suppression des no-op (if avec que des pass dans le body, for avec juste 
> des break ou des continues, ...)
GCC doit le faire

> 7. suppression des == quand les deux operandes sont pure et les mêmes
cas tests motivant ce truc ?

> 8. genere des vrai boucle comme on a l'habitude quand : la variable 
> d'iteration n'est pas assigné dans la boucle et l'iterable est un range ou 
> xrange
Je me souviens avoir testé et pas vu de diff de perfs significatifs; À
confirmer avant de se lancer

> 9. check si les constant expressions ne sont pas la même chose que des pures 
> expressions pour le constant folding
+1

> 10. Si on forward les constantes "simples"(basicType), on pourrait faire 
> plusieurs fois : csts folding et lazytransform (tant qu'on modifie des choses)
moi pas comprendre

> 11. Montrer les erreurs Python à la compilation plutot que de crasher dans gcc
pour le typage ?

> 12. prendre en compte les collapse de omp via un appel à itertools.product et 
> fusionnant les boucles à la main.
owi

> 13. for i in xrange(10): i = 2; print i est Lazy et devrais être detécté.
+1

> 14. Faire la distinction entre : ne pas être lazy et être utilisé un nombre 
> potentiellement infini de fois.
pkoa ?

> 15. OMP lazy peuvent être bloqué pour les valeurs apparaissant dans la clause 
> mais mise à un nombre très grand pour les autres
> 16. empécher l'omp seulement à la frontiére (mettre à inf les use après 
> l'entrés le pragma... // NEED OMP REWORK FIRST (omp_forwarding branch)
+1

> 17. empty list/set/dict can be concidered as basicType
?

> 18. functools.partial may be a PureFunction (depending on arguments...)
+1

> 19. bitwise_not is numpy_uexpr
+1

> 20. checker les warnings des tests pour vérifier qu'on fait du bon code.
+1, mais compliqué parceque les cas tests sont merdeux

> 21. Vérifier les comparaison multiple qui sont Lazy SSI les conditions sont 
> pures (à verifier)
+1

> 22. supprimer un max de asarray dnas numpy en replacant ces calculs par de la 
> récursion. Évite l'évaluation
+1

> pattern:
> 
> len(set())
> map(None, ...)
+1, mais c'est un gros dev

> Error :
> CRITICAL I am in trouble. Your input file does not seem to match Pythran's 
> constraints...
> E: invalid syntax (<unknown>, line 2)
> 
> => SyntaxError detectable par le parser Python
C'est déjà le cas, non ?

Other related posts: