Pythran ne supporte pas les classes, et ne supporte pas le code polymorphique.
Lisaac générait un code assez bête par défaut : une structure avec un enum qui contenait le type de classe, ainsi l'appel polymorphique était remplacé par un switch.
Ensuite, il utilisait un algo de flow pour détecter le type réel de l'objet, ainsi il pouvait réduire la taille du switch. Si il trouvait le type final, cela permettait de faire ensuite de l'inlining. C'est comme ça + la notion de gestion du layout mémoire, que IssacOs pouvait avoir un framebuffer qui était un tableau 2D de l'objet pixel, et d'avoir des vrais performances.
[^] # Re: "Pythran is an ahead of time compiler for a subset of the Python language" : Subset ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Pythran 0.9.2 - koailh. Évalué à 3.
Lisaac générait un code assez bête par défaut : une structure avec un enum qui contenait le type de classe, ainsi l'appel polymorphique était remplacé par un switch.
Ensuite, il utilisait un algo de flow pour détecter le type réel de l'objet, ainsi il pouvait réduire la taille du switch. Si il trouvait le type final, cela permettait de faire ensuite de l'inlining. C'est comme ça + la notion de gestion du layout mémoire, que IssacOs pouvait avoir un framebuffer qui était un tableau 2D de l'objet pixel, et d'avoir des vrais performances.
"La première sécurité est la liberté"